ダウンロードは、ここをクリックして下さい。
@echo off
echo =======================================================
echo プログラム: n日以上前のファイル/フォルダを削除する
echo delete_after_xDays 2016/03/18 Ver.1.0
echo =======================================================
echo.
echo.
:: <<目的>>
:: 指定したフォルダ以下のファイル・フォルダーを自動お掃除。
:: 主に、以下の2つの機能を有する。
:: ・最終更新日が、n日以上前のファイル・フォルダを削除する。
:: ・「新しいフォルダー」を「更新日_新しいフォルダー」に名称変更する。
:: <<使い方>>
:: ・バッチファイル内の、以下の変数を自分の用途に合わせて変更する。
:: TargDir: 対象フォルダの絶対パス
:: 例:) set TargDir=F:\temp_test
:: F:\temp_testより、以下のフォルダーが削除対象
:: KeepDays: 削除対象としたい経過日数
:: 例:) set KeepDays=10
:: 10日以上前の更新日のファイル・フォルダーを削除する
:: ・試運転のため、バッチファイルをダブルクリックして、 :: エラーで一時停止(正常時は黒い窓が自動的に閉じる)しなければよい。
:: (検索条件に一致しなかった旨のエラーは、無視してよい)
:: ・スタートメニューのスタートアップやタスクに、当バッチファイルをコピーしておく。
:: (次回起動時に、当バッチファイルが実行されます)
set TargDir=F:\temp_test
set KeepDays=10
setlocal ENABLEDELAYEDEXPANSION
::存在チェック
IF NOT EXIST %TargDir% (
::該当フォルダなし
echo ERROR: 指定したフォルダが存在しません→ %TargDir%
pause
goto label_exit
)
cd /d %TargDir%
::「新しいフォルダー」を「更新日_新しいフォルダー」に名前を変更する
for /d %%i in (新しいフォルダー*) do (
set NewName=%%~ti
set NewName2=!NewName:~0,10!
set NewName3=!NewName2:/=!
ren "%%~fi" "!NewName3!_%%i"
)
::n日以上前のファイルとフォルダーを削除する
::フォルダーが実際に削除されるのは、n*2日経過しないとダメ
:: (ファイル削除時に、フォルダーの更新日付が更新されるため)
forfiles /s /d -%KeepDays% /c "cmd /c if @isdir==FALSE del /f @path"
forfiles /s /d -%KeepDays% /c "cmd /c if @isdir==TRUE rmdir /q @path"
::終了処理
:label_exit
exit
|