Я запускаю командный файл в Win2003 для передачи файла через FTP.
Пакетный файл направляет результаты FTP-сеанса в FIND, чтобы увидеть, есть ли сообщение об успешном завершении 226, и это хорошо работает. К сожалению, из планировщика я попал в состояние уровня ошибки, хотя файл успешно передается и возвращается сообщение 226.
FTP -s:go.ftp 2>NUL | Find "226 Transfer OK" > NUL
If ErrorLevel 1 Echo ERROR - FTP transfer failed. >> err.log
Учетная запись пользователя является учетной записью администратора, поэтому это не проблема с правами. Любые идеи?
ОБНОВЛЕНИЕ:
Сообщение 226 не перехватывается с помощью перенаправления, что приводит к ошибке FIND. В моем тестировании я перенаправлял вывод FTP в отдельный файл при запуске из планировщика. Хотя команды FTP выполняются успешно, ни один из ответов сервера не появляется.
Вот мой FTP-скрипт:
open ftpsite
username
password
dir
quit
Вот результат (FTP -s:go.ftp >ftp.log 2>ftp.err
).
User (ftpsite:(none)): open ftpsite
04-01-12 02:35PM <DIR> DIR1
04-01-12 02:35PM <DIR> DIR2
04-01-12 02:35PM <DIR> DIR3
04-01-12 02:35PM <DIR> DIR4
dir
quit
Кроме того, в потоке ошибок ничего не отображается (2> ftp.err). По крайней мере, теперь я знаю, почему мой уровень ошибок FIND не запускается, но почему не записываются ответы FTP-сервера? Я не использую переключатель -v и не включаю подробный.
-d
включить отладку? Возможно, вам придется проанализироватьftp.log
каким-либо другим способом, чтобы определить, было ли оно успешным или нет. - person tomlogic   schedule 11.04.2012