在MS-DOS(Windows 2003 R2 Server)中,我有一个包含FTP命令的批处理文件,例如: -
FTP.CMD
-------
cd d:\extracts\scripts
ftp -i -s:ftp_getfile.ftp
exit
我希望批处理文件提升并返回错误级别1,而不是0, 这样调用批处理文件就可以处理它。
错误可能是由FTP服务器关闭引起的。现在,没有任何回复表明 发生错误。
有人可以提出建议吗?
谢谢! :)
答案 0 :(得分:3)
可能为时已晚,但有可能。我正在运行以下脚本来检查FTP脚本返回的文本中的错误。如果您知道FTP返回的错误文本,那么这就是您使用'find'命令查找的内容。 ftp命令位于一个名为ftp.inp的文件中,只需查看FTP的帮助,了解如何使用'-s'。
ftp -s:ftp.inp > ftp.log
find /I /C "not connected" ftp.log
IF NOT ERRORLEVEL 1 GOTO FTPERROR
find /I /C "not found" ftp.log
IF NOT ERRORLEVEL 1 GOTO FTPERROR
find /I /C "failed" ftp.log
IF NOT ERRORLEVEL 1 GOTO FTPERROR
REM --- no errors found
GOTO :END
:FTPERROR
REM --- error found
:END
答案 1 :(得分:1)
根据这个问题: How to capture the ftp error code in batch scripts?
Windows FTP命令不支持此行为(或PASV模式),基本上是无用的。
您可能想尝试NcFtp。它是免费的,小巧的,便携式的,并且具有良好的错误代码。