如何更改此脚本以便仅压缩超过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"
问候,杰森
答案 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%"