Windows

使用 Windows 計劃任務將文件壓縮為每日/每週/每月存檔

  • July 8, 2016

對於需要存檔的 EDI 文件,我想使用一個壓縮實用程序(如 7Zip),它根據文件的文件日期收集和壓縮文件。例如,每周存檔(第 1 週的 incoming-2009-01.7z)需要使用文件日期在本週的所有傳入文件進行更新。

是否有一個命令行實用程序可用於呼叫具有必要參數的壓縮工具,或其他簡單的方法來實現這種存檔策略?

我不知道直接提供此功能的實用程序,但建構腳本(使用 powershell、perl、python ..)來辨識符合您的條件的文件,刪除完全限定名稱(例如 d:\incoming \something\filename.ext )到一個平面文本文件中,每行一個文件名,然後讓您的壓縮實用程序從該列表文件創建一個存檔,例如

7z -a output.zip @filelist.txt

如果您將整個內容包裝在腳本中,那麼分配您指定的存檔名稱類型非常容易。

添加了一個 Powershell 範例。

$archiveroot="c:\temp"
$oldest = (get-date) - (new-timespan -day 31)
$archivename="Incoming-" + $oldest.year + "-" +$oldest.month+".7z"
$filelist= get-childitem $archiveroot -recurse | where-object {$_.lastwritetime -gt $oldest}
$filelist | format-table -hideTableHeaders FullName | out-file -encoding utf8 -filepath lastmonthsfiles.txt
& .\7z.exe a $archivename `@lastmonthsfiles.txt

它不完全是一條線,你需要將它正確地指向 7-Zip exe,添加一些參數處理,一些日誌記錄\錯誤處理,它應該清理工作文件,但它是一個正確方向的指針。

引用自:https://serverfault.com/questions/57582