找到了几个本地解决方案,但需要一个用于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
答案 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的作者)