首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >批量删除FTP上x天之前的文件

批量删除FTP上x天之前的文件
EN

Stack Overflow用户
提问于 2012-03-09 07:20:04
回答 2查看 13.5K关注 0票数 4

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

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

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

代码语言:javascript
运行
复制
forfiles -p "C:\whatever" -s -m *.* -d 14 -c "cmd /c del @path"`

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

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

代码语言:javascript
运行
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-13 20:36:10

  1. 捕获您感兴趣的文件列表

回显用户ftp username>ftpdir.txt回显ftp password>>ftpdir.txt回显目录。myserver.com

  • prepare ftplist.txt >>ftpdir.txt quit>>ftpdir.txt ftp -n -s:ftpdir.txt myserver.com

  • prepare ftplist.txt ftp -s:ftpdir.txt quit>>ftpdir.txt ftp delete script

echo user ftp password>>ftpdel.txt

  • process username>ftpdel.txt echo ftp列表

对于循环内的/f "tokens=6,7,8,*“%%a in (ftplist.txt) do ( echo %%d )

  • ,提取文件日期。

回显%%c%%a%%b- %%d

并将月份名称转换为数字

呼叫:月%%a

您可以使用http://www.dostips.com/DtTipsStringManipulation.php

  • inside循环中的例程,将日期转换为从今天开始的天数

呼叫:天数%%c%月%b

这是对使用Fliegel-Van Flandern算法计算日期的例程的调用。最后,在循环中,比较结果数,如果大于14,则将文件添加到文件中以删除How can I check the time stamp creation of a file in a Windows batch script?

  • and脚本

如果!天!GEQ 14回显DEL %%d >>ftpdel.txt

  • finish ftp del脚本并执行它

myserver.com quit>>ftpdel.txt ftp -n -s:ftpdel.txt echo

票数 5
EN

Stack Overflow用户

发布于 2016-07-27 23:35:09

正如非常好的answer by @PA.所显示的那样,使用内置的ftp.exe实现它很麻烦。

你最好使用一些更强大的脚本化第三方FTP客户端。

WinSCP FTP client为例,它很简单,就像:

代码语言:javascript
运行
复制
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的作者)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9626618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档