PDA

Показать полную графическую версию : как втавить паузу в bat фаил


Alex_Foks
02-11-2014, 09:13
Здравствуйте, есть ftp
есть скрипт, нужно скопировать с локальной машины(Win2003) на FTP
вот скрипт

сам бат
ftp.exe -i -s:ftp_copy.txt>log_copy.txt


ftp_copy.txt
open IP ФТП
логин
пароль
binary
cd public_html/123
mput D:\123\*.*
bye


файлов окола 300-500 шт.
и при 150-200 копировании постоянно вылитает ошибка

как передать эти файлы с паузой в 2 миллисекунды, после каждого файлы

Всё из за того что хостер фри, и у него стоит ограничение на загрузку сети, из за этого батник вышибает ((((

Iska
02-11-2014, 10:23
и при 150-200 копировании »
Переведите на русский.

постоянно вылитает ошибка »
Какая именно ошибка?

Всё из за того что хостер фри, и у него стоит ограничение на загрузку сети, »
Что за хостер? Что за ограничение — конкретно? Откуда получена эта информация?

Georgio
02-11-2014, 12:58
сам бат
ftp.exe -i -s:ftp_copy.txt>log_copy.txt »


ftp_copy.txt
open IP ФТП
логин
пароль
binary
cd public_html/123
mput D:123*.*
bye »


как передать эти файлы с паузой в 2 миллисекунды, после каждого файлы »




Всё в одном пакетном файле:


@echo off

:: Пауза (2 мс) после отправки каждого файла.
>.vbs echo WScript.Sleep 2

@>"ftp_copy.txt" (
for %%i in (
"open IP ФТП"
"логин"
"пароль"
"binary"
"cd public_html/123"
) do @(
echo %%~i
)
for /f "delims=" %%i in ('"dir /a-d/b "D:\123\*" 2>nul"') do @(
echo put "D:\123\%%i"
echo ! cscript //nologo .vbs
)
echo bye
)

ftp.exe -i -s:"ftp_copy.txt">"log_copy.txt"

del .vbs
exit /b


.

Iska
02-11-2014, 13:29
Georgio, так и не любите пользовать «ping.exe» для паузы?

Georgio
02-11-2014, 13:58
Iska, тут же речь идёт о двух миллисекундах. Правда, не понимаю, почему так мало.

Iska
02-11-2014, 16:17
Georgio, приношу свои извинения, как-то недоглядел :(.

Alex_Foks
02-11-2014, 18:18
расширение .vbs присваивать ?



@echo off

:: Пауза (2 мс) после отправки каждого файла.
>.vbs echo WScript.Sleep 2

@>"ftp_copy.txt" (
for %%i in (
"open IP ФТП"
"логин"
"пароль"
"binary"
"cd public_html/123"
) do @(
echo %%~i
)
for /f "delims=" %%i in ('"dir /a-d/b "D:\123\*" 2>nul"') do @(
echo put "D:\123\%%i"
echo ! cscript //nologo .vbs
)
echo bye
)

ftp.exe -i -s:"ftp_copy.txt">"log_copy.txt"

del .vbs
exit /b

Georgio
02-11-2014, 18:46
Всё в одном пакетном файле »

Alex_Foks, ".bat", конечно.

Alex_Foks
02-11-2014, 22:20
Спасибо за ответы ))))
объясните 2 строчки
echo ! cscript //nologo .vbs что эта делает ?
del .vbs и эта ?

PS а может поможете, доделать скрипт нужно ещё что бы перед этим заданием за 5-8 минут (можно сделать паузой) запускалась очистка папки(public_html/123) полностью

Georgio
03-11-2014, 12:52
echo ! cscript //nologo .vbs »

Временный переход в оболочку и выполнение команды запуска ранее созданного временного VBS-файла.


del .vbs »

Удаление временного VBS-файла.


за 5-8 минут (можно сделать паузой) запускалась очистка папки(public_html/123) полностью »

Сделаю.

Alex_Foks
03-11-2014, 13:28
спс всё понятно, приятно общаться (что редкость )

Georgio
05-11-2014, 05:39
@echo off


@>"ftp_copy.txt" (

for %%i in (
"open IP ФТП"
"логин"
"пароль"
"binary"
"cd public_html/123"
) do @(
echo %%~i
)

echo mdelete *

:: Пауза (8 мин) после удаления файлов.
echo ! ^>.vbs echo WScript.Sleep 480000

echo ! cscript //nologo .vbs

:: Пауза (2 мс) после отправки каждого файла.
echo ! ^>.vbs echo WScript.Sleep 2

for /f "delims=" %%i in ('"dir /a-d/b "D:\123\*" 2>nul"') do @(
echo put "D:\123\%%i"
echo ! cscript //nologo .vbs
)

echo bye

)


ftp.exe -i -s:"ftp_copy.txt">"log_copy.txt"


del .vbs
exit /b

Alex_Foks
05-11-2014, 19:35
не копирует файлы(на FTP ничего нет ((), я так понимаю при простое хостер обрывает соединение (((
можно как то поддержать это соединение, течении этих 8 минут ?

вот скрин

http://s40.radikal.ru/i089/1411/c5/bf32de5446e3.jpg

Iska
05-11-2014, 20:53
я так понимаю при простое хостер обрывает соединение ((( »
Запросто.

можно как то поддержать это соединение, течении этих 8 минут ? »
Попробуйте сократить паузу. Например, восемь раз делайте (паузу на минуту + запрос «pwd»). Или паузы на полминуты и 16 раз «pwd».

Alex_Foks
05-11-2014, 20:58
извините не осилю, олух я в этом ((((

Georgio
05-11-2014, 23:36
@echo off
del "log_copy.txt" 2>nul

for /l %%i in (1 1 2) do (
@>"ftp_copy.txt" (
for %%j in (
"open IP ФТП"
"логин"
"пароль"
"binary"
"cd public_html/123"
) do @(
echo %%~j
)
if %%i==1 (
echo mdelete *
rem :: Пауза (8 мин) после удаления файлов.
echo ! ^>.vbs echo WScript.Sleep 480000
)
if %%i==2 (
rem :: Пауза (2 мс) после отправки каждого файла.
echo ! ^>.vbs echo WScript.Sleep 2
for /f "delims=" %%j in ('"dir /a-d/b "D:\123\*" 2>nul"') do @(
echo put "D:\123\%%j"
echo ! cscript //nologo .vbs
)
)
echo bye
)
>>"log_copy.txt" (
ftp.exe -i -s:"ftp_copy.txt"
echo.
)
cscript //nologo .vbs
)

del .vbs
exit /b

Alex_Foks
06-11-2014, 07:38
выходит ошибка

http://s57.radikal.ru/i155/1411/0b/8076abdd532b.jpg

Georgio
06-11-2014, 12:11
выходит ошибка »

Alex_Foks, в строке for /f "delims=" %%j in ('"dir /a-d/b "D:\123\*" 2>nul"') do @( Вы забыли поставить одну из двух кавычек, отмеченных красным цветом.


Код: »

Отредактировал свой предыдущий пост, сократив код.

Alex_Foks
07-11-2014, 11:50
всё работает до пары до времени вот скрин с логов

т.е. при копировании 120 файла обрыв связи и дальше не копируется
и так постоянно то на 100 то на 120 то нормально, хз почему, связь с провайдером по оптике, обрывы исключены, всё остальное нормально копируется без збоев на другие подобные ftp, а в этом вечный геморой (((((((


http://s47.radikal.ru/i115/1411/9a/af1749ccb001.png




© OSzone.net 2001-2012