在Windows上最快的方法来删除计划文件

我有一个Windows服务器机器,每天进行每日备份,每天每天备份需要1.5GB,我想删除超过1周的备份文件。

这是我的备份文件是如何组织的:

backup.20091118.gz.gpg,你可以看到20091118部分是标识文件date是2009/11/18(年,月,日)的部分。

我打算为此编写一个快速批处理脚本,并通过任务pipe理器进行排定,这是一个好主意吗? 如果是的话,我会非常乐意在批处理脚本部分获得帮助。

最好的祝福

首先删除旧的备份,直到每天只剩下7个备份,然后担心删除目录中最早的文件,然后再执行每个新的备份,而不用担心文件的存在时间。

在批处理脚本中删除目录中最旧的文件非常容易:

SET BACKUPDIR=C:\PATH\TO\BACKUPS FOR /F %%i IN ('DIR /B /OD %BACKUPDIR%') DO SET OLDEST=%%i DEL %BACKUPDIR%\%OLDEST% 

唯一真正的技巧是命令DIR /B /OD列出按datesorting的纯文件名,最后最老的。 我们使用FOR循环来捕获OLDESTvariables中的每个文件名,因此当循环完成时, %OLDEST%将扩展为最旧文件的名称。

在创build最新的备份之前删除最早的文件。

文件删除速度快,比备份〜1.5GB快得多,备份已经安排好了。

“最快”的方式? 一条build议。 从这里下载GNU发现

那么简单地创build如下的计划任务:

 gnu_find.exe c:\path -type f -iname "backup.*gpg" -mtime +7 -delete 

您可能希望查看更智能,更高效的备份技术,而不仅仅是归档完整的快照。 OS X拥有可以进行小时备份的Time Machine 。 它只存储改变的文件,所以尽pipe是非压缩的非常有效的空间。 由于一些巧妙的索引,在初始备份之后它的速度比完整的快照快得多。 而且因为它只是存储文件,没有华丽的存档格式,从备份中恢复文件就像复制文件一样简单。

Windows可能有类似的东西。 希捷副本和精灵时间表是两种可能性。