用于检查FTP连接是否成功的批处理命令

时间:2015-07-14 11:13:27

标签: batch-file ftp

我正在编写批处理命令以通过FTP发送数据。在发送实际数据之前,我需要查找FTP服务器是否处于活动/运行状态。如何在批处理命令中检查它?

服务器在连接时以“220 server ready”消息响应。

2 个答案:

答案 0 :(得分:1)

做这样的事情:

YourFTPCommand | find /i /v "220 server ready" && goto :ServerNotReady

说明:

  1. 将FTP命令的输出传递给FIND
  2. 不区分大小写(/ i)搜索不包含(/ v)字符串“220 server ready”的输出
  3. 如果找到这样的字符串(&&)
  4. ,请到某个地方

答案 1 :(得分:1)

我认为使用Windows ftp.exe执行此操作并不可靠。

无论连接或先前的命令是否成功,它都会盲目地继续运行命令。

它甚至不会通过退出代码报告结果。

您所能做的就是解析ftp.exe输出。

您最好使用第三方FTP客户端。

例如,使用WinSCP scripting,您可以使用:

@echo off

winscp.com /log=ftp.log /command ^
    "open ftp://user:password@example.com/" ^
    "put c:\local\path\file.txt" ^
    "exit" 

如果连接(open命令)失败,WinSCP将不会执行以下命令(put)。

另见Converting Windows FTP script to WinSCP FTP script

(我是WinSCP的作者)