批处理文件中的MS-DOS FTP命令:引发错误

时间:2012-05-21 14:02:04

标签: windows error-handling batch-file ftp dos

在MS-DOS(Windows 2003 R2 Server)中,我有一个包含FTP命令的批处理文件,例如: -

FTP.CMD
-------
cd d:\extracts\scripts
ftp -i -s:ftp_getfile.ftp
exit

我希望批处理文件提升并返回错误级别1,而不是0, 这样调用批处理文件就可以处理它。

错误可能是由FTP服务器关闭引起的。现在,没有任何回复表明 发生错误。

有人可以提出建议吗?

谢谢! :)

2 个答案:

答案 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。它是免费的,小巧的,便携式的,并且具有良好的错误代码。