我正在编写批处理命令以通过FTP发送数据。在发送实际数据之前,我需要查找FTP服务器是否处于活动/运行状态。如何在批处理命令中检查它?
服务器在连接时以“220 server ready”消息响应。
答案 0 :(得分:1)
做这样的事情:
YourFTPCommand | find /i /v "220 server ready" && goto :ServerNotReady
说明:
答案 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的作者)