批处理脚本以压缩超过7天的文件

时间:2013-02-28 16:34:00

标签: batch-file zip

如何更改此脚本以便仅压缩超过7天的文件?

FOR %%A IN (D:\Agentrics\integration\incoming\Mansoor\backup\*.txt*, D:\Agentrics\integration\incoming\Mansoor\backup\*.cpi*) DO "C:\Program Files\WinRAR\WinRAR.exe" a -r D:\Agentrics\integration\incoming\Mansoor\backup\"%%~nA.zip" "%%A"

FOR %%A IN (D:\Agentrics\integration\incoming\Mansoor\backup\*.TXT,D:\Agentrics\integration\incoming\Mansoor\backup\*.cpi) DO DEL "D:\Agentrics\integration\incoming\Mansoor\backup\.cpi*" "%%A"

问候,杰森

2 个答案:

答案 0 :(得分:3)

只需使用WinRAR的{​​{1}}开关,即指示归档程序仅处理超过指定时间段的文件。句点应该是由数值和单位组成的字符串:

-to

NNNdNNNhNNNmNNNs 的数值是 NNN (天), d (小时), h (分钟), m (秒)是有效的单位代号。

您不必指定所有单位。例如,在您的情况下,期间只是s

7d

如果没有文件与指定的时间段匹配,则不会创建/更新存档。

答案 1 :(得分:2)

Robocopy能够根据年龄复制文件。我使用robocopy将文件移动到临时目录,然后压缩该目录的内容。

例如(未经测试):

SET SourceDir=C:\Agentrics\integration\incoming\Mansoor\backup
SET TmpDir=C:\Agentrics\integration\incoming\Mansoor\backup\tmpbackup

ROBOCOPY "%SourceDir%" "%TmpDir%" *.txt *.cpi /MOV /MINAGE:7 
FOR %%A IN (%TmpDir%\*.*) DO "C:\Program Files\WinRAR\WinRAR.exe" a "%SourceDir%\%%~nA.zip" "%%A" 
RMDIR /S /Q "%TmpDir%"