robocopy基于最早的存档日期?

时间:2014-09-25 22:03:01

标签: file-io backup robocopy batch-file

我想在“C:\ Laptop Backups”中压缩“Data Files RC”,并在文件末尾加上日期 所以会有:

C:\Laptop Backups\
    Data Files RC 9_22_2014.zip
    Data Files RC 9_23_2014.zip
    Data Files RC 9_24_2014.zip
    Data Files RC 9_25_2014.zip

然后我想根据创建日期查看“C:\ Laptop Backups”目录中的最早日期, 不是添加到文件名的日期,并删除超过14天的任何压缩文件。所以在 上面的例子,我想获取“数据文件RC 9_25_2014.zip”的创建日期然后倒数14天 并删除超过14天的所有压缩文件。

我想使用最早的文件日期,因为如果我在度假或只是不注意 并且系统失败,然后删除将不会继续根据今天的日期删除文件。 如果我没有抓住这个,那么最终会删除所有备份。

因此,如果某些内容失败但删除仍然有效,则只会从14天后删除 失败的地方,即所以说在9-26-2014之后复制选项不起作用,但是 删除是踢,然后从2014年9月25日回来只有14天将被删除,然后也将在9-27-2014 仍然只在14天后从14-25-2014删除,而不是使用9-27-2014。这总是有14天的价值 备份从9-25-2014回来。

也许这不是问题,但我确实有一个根据今天的日期删除的例程,然后我有一个单独的 备份软件,我刚刚发现它失败了,所以我发现我放在Windows中的删除批处理例程 调度程序最终会删除所有备份。

那么避免这种情况的最佳方法是什么,可以将robocopy设置为查看最早的文件日期,然后删除旧文件 基于那个还是有其他一些脚本或其组合?

1 个答案:

答案 0 :(得分:0)

要将最新的14 .zip文件保存在文件夹中,您可以使用此文件:删除echo以激活删除命令。
它按日期对ZIP文件进行排序,始终跳过最近的14个文件,并删除其余文件。

确保显示的文件夹已存在。

@echo off
cd /d "C:\Laptop Backups"
for /f "skip=14 delims=" %%a in ('dir *.zip /b /o-d /a-d') do echo del "%%a"
pause