2012-05-21 74 views
3

在MS-DOS(的Windows 2003 R2服务器),我有在它的FTP命令一个批处理文件,例如: -MS-DOS的FTP命令在批处理文件:提高错误

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

我会就像批处理文件一样,引发并返回错误级别为1的失败而不是0, ,以便调用批处理文件可以处理它。

该错误可能是FTP服务器关闭造成的。现在,没有任何信息返回来表示 发生错误。

请有人建议吗?

谢谢! :)

回答

1

按照这样的问题: How to capture the ftp error code in batch scripts?

窗户FTP命令不支持此行为(或PASV模式),基本上是没有什么功效。

您可能想尝试NcFtp。它是免费的,小型的,便携式的,并且具有体面的错误代码。

+0

好吧,似乎在Windows上的股票FTP不能做到这一点。我会尝试NcFtp!谢谢! – Learner74

+0

它似乎不适用于64位Windows(Win 7或Win 2003 R2)。 : -/ – Learner74

+0

我在Windows 7 x64和Windows Server 2008 x64上为Microsoft Windows使用NcFTP Client 3.2.5,没有任何问题。 – aboy021

2

也许来不及,但它是可能的。我正在运行以下脚本来检查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 
+0

感谢您的回复Martin,我最终通过使用名为** WinSCP portable **的第三方FTP命令行客户端解决了此问题http://winscp.net/eng/download.php,退出时可能会引发多个错误代码。 – Learner74