
現在、古いバージョンの Winzip を使用して、過去 24 時間以内に作成または変更されたすべてのファイルをバックアップするバッチ ファイルを実行しています。アーカイブには 7 zip を頻繁に使用しており、この目的で使用したいのですが、日付/タイム スタンプに基づいてファイルを選択できるスイッチがありません。タイム スタンプに基づいてファイルをディレクトリにコピーし、そこからアーカイブすることはしたくありません。何か提案はありますか?
答え1
http://ss64.com/nt/forfiles.html
そして
http://www.dotnetperls.com/7-zip-examples ->
forfiles /c "7za a -t7z @fname.7z @file" /d -1
答え2
少し調べた結果、うまくいくはずの方法が見つかりました...
forfiles /c "cmd /c 7z u -t7z [setup an empty 7z file].7z @path" /d -1 /s
答え3
これらのスイッチを使用すると、1日以上前のファイルは閉じますがアーカイブされます。現在の日付の構文は次のとおりです(出力ファイルに日付が追加されます)。
set hr=%time:~0,2%
if "%hr:~0,1%" equ " " set hr=0%hr:~1,1%
Rem - compress data that is from current day
forfiles /p "c:\<path of what to backup>" /d 0 /c "cmd /c C:\<Location of 7zip>\7za u -tzip D:\<Where you want archive saved>\Archive_%date:~-4,4%%date:~-10,2%%date:~-7,2%_%hr%%time:~3,2%%time:~6,2%.zip @PATH -mmt"