【バッチファイル】○○以前に更新されたファイルを削除する【ログローテーション】

バッチファイルで
 ・○○以前に更新されたファイルを削除
できます!
※例えば更新日時が本日より7日以前になっているファイルを削除できます。

つまり
 ・ログローテーション
できます!

PR

コード

ここでは例として
 ・デスクトップ上のフォルダ「test」配下のファイル「*.log」の
 ・更新日時が本日より7日以前になっているファイルを削除
します。
※今回は「本日:2022/11/21」、「7日以前:2022/11/14以前」です。
※上記の場合、更新日時が2022/11/14となっているファイルも削除されます。

デスクトップ上のフォルダ「test」の配下のファイル「*.log」
デスクトップ上のフォルダ「test」配下のファイル「*.log」
@echo off

rem 対象フォルダを指定
set targetFolder=C:\Users\user\Desktop\test
rem 対象ファイルを指定
set targetFile=*.log

rem ○○以前に更新されたファイルを削除
forfiles /P %targetFolder% /M %targetFile% /D -7 /C ^"cmd /c del @file^"

rem 実行結果を確認
if %errorlevel% == 0 (
	echo 正常終了しました。戻り値:%errorlevel%
) else (
	echo 異常終了しました。戻り値:%errorlevel%
)

pause
exit

対象フォルダを指定します(4行目)。
対象ファイルを指定します(6行目)。

「forfiles」コマンドにより、「○○以前に更新されたファイル」を削除します(11行目)。
※「/P」に対象フォルダを指定します。
※「/M」に対象ファイルを指定します。
※「/D」に「-数字」を指定します。上記では対象を7日以前とするため「-7」と指定しています。

※「”(ダブルクォーテーション)」を「^」でエスケープしています。

PR

実行結果

○○以前に更新されたファイルを削除できました。
※更新日時が本日より7日以前になっているファイルを削除できました。

実行結果①
実行結果①
実行結果②
実行結果②

対象ファイル(今回は7日以前のファイル)が存在しない場合は、エラーメッセージ「指定した検索条件でファイルが見つかりませんでした。」が表示されます。

エラーメッセージ
エラーメッセージ
PR

参考

上記で使用した以下の詳細は、公式サイトをご確認ください。

●「forfiles」コマンド

タイトルとURLをコピーしました