批处理 - 删除一周的备份

时间:2012-10-01 04:19:55

标签: batch-file backup

所以我有一个批处理文件将文件夹备份到我的Google云端硬盘目录,如下所示:

C:\Program Files\WinRAR\rar.exe a -r "D:\Google Drive\Saves Backup\%DATE%.rar" "D:\Documents\My Games\"

这会在适当的文件夹中生成名为30-Sep-12.rar(今天运行)的文件。

但是,我的问题是:是否有某种方法可以浏览所述文件夹(D:\ Google Drive \ Saving Backup)并删除超过一周的备份,具体取决于文件名?

2 个答案:

答案 0 :(得分:6)

为什么必须使用文件名中嵌入的日期?只要备份自创建之后未被修改,最后修改日期应与文件名中嵌入的日期相同。

FORFILES是少数可以方便地使用日期算术的Windows实用程序之一。从命令行键入FORFILES /?以获取有关其用法的帮助。

forfiles /p "D:\Google Drive\Saves Backup" /m "*.rar" /d -7 /c "cmd /c del @path"

如果您有可能有人可以修改备份,从而更改上次修改日期,那么上述操作将无效。解析和比较日期是批量的痛苦。你最好使用VBScript。

答案 1 :(得分:0)

我认为你不能只用一个批处理文件。如果你可以制作C / C ++程序,你可以轻松编写一个获取目录内容的程序,比较日期然后删除旧文件。