3

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

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

我希望批处理文件引发并返回错误级别 1 而不是 0,以便调用批处理文件可以处理它。

该错误可能是由于 FTP 服务器关闭所致。现在,没有返回任何内容来指示发生了错误情况。

请问有人可以建议吗?

谢谢!:)

4

2 回答 2

3

也许为时已晚,但有可能。我正在运行以下脚本来检查 FTP 脚本返回的文本中的错误。如果您知道 FTP 返回的错误文本,那么这就是您使用“查找”命令查找的内容。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
于 2012-07-19T04:40:05.480 回答
1

根据这个问题: 如何在批处理脚本中捕获 ftp 错误代码?

windows FTP 命令不支持这种行为(或 PASV 模式),基本上几乎没用。

您可能想改用NcFtp。它是免费的、小巧的、便携的,并且有不错的错误代码。

于 2012-05-21T21:44:18.263 回答