Batch file 用于压缩超过7天的文件的批处理脚本

Batch file 用于压缩超过7天的文件的批处理脚本,batch-file,zip,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.zi

如何更改此脚本,使其仅压缩早于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"

另外,Jason能够根据年龄复制文件。我会使用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%"
只需使用WinRAR的-to开关,它指示归档程序只处理比指定时间段早的文件。句点应该是由数值和单位组成的字符串:

NNNdNNNhNNNmNNNs

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

谢谢。我会试试这个,让你知道。再次感谢。好的,我测试了你上面提供的命令。该命令执行时没有错误,但它所做的只是删除TmpDir。我在备份文件夹中有需要压缩的文件,我创建了一个tmp目录来测试这个命令。这是我执行的命令。设置SourceDir=D:\Agentrics\integration\incoming\Mansoor\backup\SET TmpDir=D:\Agentrics\integration\incoming\Mansoor\backup\tmpbackup robocopy%SourceDir%%TmpDir%.txt.cpi/MOV/MINAGE:7,用于%TmpDir%%*中的%%A.*DO C:\Program Files\WinRAR\WinRAR.exe A-r%SourceDir%%%%nA.zip%%A rmdir/s/q%SourceDir%看起来您在FOR中遗漏了一个\项:%TmpDir%\*.*。这将导致FOR找不到任何匹配的文件。该命令执行时没有错误,但它所做的只是将文件从备份文件夹复制到备份\MansoorBackup,然后删除备份文件夹,而不压缩MansoorBackup文件夹中的文件。如果它正确地将正确的文件移动到临时文件夹,但只是不压缩它们,然后,FOR循环或WinRAR命令行出现问题。你必须排除故障。将ECHO粘贴在其中以查看它试图执行的操作:对于%TmpDir%\*.*中的%%A,执行ECHO C:\Program Files\WinRAR\WinRAR.exe A%SourceDir%\%%~nA.zip%%A,并确保WinRAR命令行与您期望的一样。试着像ECHO命令一样在命令行中运行WinRAR,然后调整命令行,直到它达到你想要的效果。啊,比我的答案好得多!如果WinRAR对此有命令行选项,请使用它们!
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 -to7d D:\Agentrics\integration\incoming\Mansoor\backup\"%%~nA.zip" "%%A"
)