-1

在使用批处理文件成功发送到 ftp 后,我想从本地系统中删除文件。出于调度目的,我使用窗口调度程序。下面是我的代码,它能够发布到 ftp.how 删除成功发送到 ftp 否则文件 shld 不会删除。

 %windir%\system32\ftp.exe -s:%~f0
 goto done
 cd C:\
 open Host Name
 user_name
 password
 bi
 put user_input.csv
 bye
 :done
 @echo off
 cls
 exit 

如果我要在这里写删除,那么它将从远程服务器中删除。请建议我如何使用窗口 ftp.exe 执行此操作

4

1 回答 1

0

您需要重定向 FTP 命令的输出。检查成功的消息并对其采取行动。

我无法提供确切的脚本,因为它取决于您实际使用的 FTP 命令,但想法是这样的。

echo open Host Name >%temp%\ftpin.txt
echo user_name >>%temp%\ftpin.txt
echo password >>%temp%\ftpin.txt
echo put user_input.csv >>%temp%\ftpin.txt
echo bye  >>%temp%\ftpin.txt
ftp -n -s:%temp%\ftpin.txt >%temp%\ftpout.txt
for /f "tokens=* skip=9" %%a in (ftpout.txt) do (
   if "%%a"=="226 Transfer complete." (
   del user_input.csv
   )
)

编辑:您必须将 BAT 调整为 FTP 脚本的实际输出。可能您需要更改命令的"skip"参数FOR

于 2013-09-02T19:57:06.773 回答