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

3

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

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

我希望批处理文件在失败时能够提高并返回错误级别1,而不是0, 以便调用批处理文件可以处理它。
错误可能是由于FTP服务器宕机引起的。目前,没有任何返回指示 发生了错误情况。
请问有人可以提供建议吗?
谢谢! :)
2个回答

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

谢谢你的回复,马丁。我最终通过使用一个名为WinSCP portable的第三方FTP命令行客户端解决了这个问题。它可以在退出时产生多个错误代码。http://winscp.net/eng/download.php - Learner74

1

好的,看起来Windows自带的FTP无法完成这个任务。我会尝试使用NcFtp!谢谢! - Learner74
似乎在64位Windows(Win 7或Win 2003 R2)上无法正常工作。 :-/ - Learner74
我在Windows 7 x64和Windows Server 2008 x64上使用NcFTP Client 3.2.5 for Microsoft Windows,没有任何问题。 - aboy021

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接