批量删除早于x天的FTP上的文件

时间:2012-03-08 23:20:04

标签: windows batch-file ftp

找到了几个本地解决方案,但需要一个用于FTP操作:

我有一个每日批处理脚本来本地备份MySQL数据库,但我也将它们ftp到备份服务器。

在本地,我使用forfiles删除超过14天的文件:

forfiles -p "C:\whatever" -s -m *.* -d 14 -c "cmd /c del @path"`

一旦最新的备份文件被转储到运行在Windows Server 2008 R2上的FTP服务器上,我想在FTP上做同样的事情。

如何扩展我的批处理文件以执行此操作?

cd\[path to directory where files are saved] 
echo off
echo user [ftp username]>ftpup.dat
echo [ftp password]>>ftpup.dat
echo binary>>ftpup.dat
echo put [FullBackup.%backupdate%.zip]>>ftpup.dat
echo quit>>ftpup.dat
ftp -n -s:ftpup.dat [myserver.com]
del ftpup.dat

1 个答案:

答案 0 :(得分:4)

使用内置ftp.exe实施非常麻烦,因为非常好的answer by @PA.显示。

您最好使用一些功能更强大的可编写脚本的第三方FTP客户端。

例如,使用WinSCP FTP client时,它就像:

一样简单
winscp.com /ini=nul /log=delete.log /command ^
    "open ftp://username:password@ftp.example.com/" ^
    "rm /remote/path/*<14D" ^
    "exit"

请参阅file masks with time constraints

(我是WinSCP的作者)