仅删除以前使用批处理文件中的文件掩码下载的FTP文件

时间:2016-01-26 13:03:49

标签: batch-file ftp automation

我的确切过程如下:

  1. 从FTP下载.zip文件
  2. 将.zip文件解压缩到新文件夹
  3. 删除本地.zip文件
  4. 删除ftp .zip文件
  5. 我编写了以下脚本,每天通过Windows任务推送它。在从FTP删除文件之前,可以轻松地进行双重检查? 在批处理文件中比较文件名似乎很复杂。也许检查文件数量?

    rem write FTP-download file
    echo open Server >>ftpDownload.text
    echo user >>ftpDownload.text
    echo Password >>ftpDownload.text
    echo cd /out >>ftpDownload.text
    echo lcd c:\DownloadUPS >>ftpDownload.text
    echo binary >>ftpDownload.text
    echo prompt >>ftpDownload.text
    echo mget *.zip >>ftpDownload.text
    echo quit >>ftpDownload.text
    
    rem execute ftp file
    ftp -s:ftpDownload.text
    del ftpDownload.text
    
    cd C:\DownloadUPS
    rem create foldername
    FOR /F "tokens=1,2,3,4,5 delims=/. " %%a in ('date/T') do set CDATE=%%a%%b%%c%%d
    echo %cdate%
    md download%cdate%
    rem extract .zip
    C:\DownloadUPS\7zcommandline\7za.exe x *.zip -ppassword -oc:\DownloadUPS\download%cdate% -y
    del *.zip
    
    rem write ftp-delete file
    echo open Server >>ftpDelete.text
    echo user >>ftpDelete.text
    echo Password >>ftpDelete.text
    echo cd /out >>ftpDelete.text
    echo binary >>ftpDelete.text
    echo prompt >>ftpDelete.text
    echo mdel *.zip >>ftpDelete.text
    echo quit >>ftpDelete.text
    ftp -s:ftpDelete.text
    del ftpDelete.text
    

    感谢您的评论,也许您可​​以帮助我批量编码标准,我的技能非常基本;)

1 个答案:

答案 0 :(得分:0)

我认为您的问题是,如何确保仅删除之前已成功下载的ZIP文件。

for循环中提取ZIP文件,并为每个文件显式生成del命令:

echo open Server >>ftpDelete.text
echo user >>ftpDelete.text
echo Password >>ftpDelete.text
echo cd /out >>ftpDelete.text
echo binary >>ftpDelete.text

for %%a in (*.zip) do (
  C:\DownloadUPS\7zcommandline\7za.exe x %%a -ppassword -oc:\DownloadUPS\download%cdate% -y
  echo del %%a >>ftpDelete.text
)

echo quit >>ftpDelete.text
ftp -s:ftpDelete.text
del ftpDelete.text

或使用可通过掩码以事务方式下载和删除文件的FTP客户端。

例如,使用WinSCP FTP client,您可以使用:

winscp.com /command ^
    "open ftp://user:password@server/" ^
    "get -delete /out/*.zip c:\DownloadUPS\*" ^
    "exit" 

cd C:\DownloadUPS
rem Your extract code follows

有关详情,请参阅automating file transfers from FTP server using WinSCP指南。

(我是WinSCP的作者)