Batch file 使用批处理文件成功上载到ftp后,从本地驱动器删除文件

Batch file 使用批处理文件成功上载到ftp后,从本地驱动器删除文件,batch-file,window,scheduling,Batch File,Window,Scheduling,我想在使用批处理文件成功发送到ftp后从本地系统中删除文件。出于调度目的,我使用窗口调度程序。下面是我的代码,可以发布到ftp。如何删除成功发送到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 如果我在这里写de

我想在使用批处理文件成功发送到ftp后从本地系统中删除文件。出于调度目的,我使用窗口调度程序。下面是我的代码,可以发布到ftp。如何删除成功发送到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 

如果我在这里写delete,那么它将从远程服务器删除。请建议我如何使用window ftp.exe执行此操作。您需要重定向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
   )
)

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

谢谢你的回复。我尝试了你告诉我的一切,但它也没有上传文件。我不知道我哪里做错了。它在ftpin.txt中写到了再见。echo打开xxx.xxx.xxx.xx>%temp%\ftpin.txt echo Fusion HCM>%temp%\ftpin.txt echo ora8945$>%temp%\ftpin.txt echo put J:\Users\ADITYARAJ SINGH\profile.xml>%temp%\ftpin.txt echo bye>%temp%\ftpin.txt ftp-n-s:%temp%\ftpin.txt>%temp%\ftpout.txt对于/f“令牌=*跳过=9”%a in(ftpout.txt)执行(如果“%a”=”226传输完成)(DelJ:\用户\AdITYARAJJ Sangh Primel.xml))首先,如果文件没有上载,那么你必须检查你的脚本。它与输出的检查无关。可能是文件名中的空白??第二,请看我最近更新的答案。