windowsのbatファイルで、指定のファイルフォーマットの指定した日付のフォルダ以外を削除するバッチ処理を作ってみました。
echo off
if "%1"=="" (
echo エラー: 日数の引数が指定されていません。
goto :eof
)
if "%2"=="" (
echo エラー: フォルダパスの引数が指定されていません。
goto :eof
)
set DAYS=%1
set TARGET_DIR=%2
for /f "tokens=" %%F in ('dir /b /a-d "%TARGET_DIR%\FILENAME_.log"') do (
set FILENAME=%%F
set FILEDATE=!FILENAME:~9,8!
set YEAR=!FILEDATE:~0,4!
set MONTH=!FILEDATE:~4,2!
set DAY=!FILEDATE:~6,2!
set FILEDATE_STR=!YEAR!-!MONTH!-!DAY!
for /f "tokens=1-3 delims=-" %%A in ("!FILEDATE_STR!") do (
set FILEDATE_EPOCH=%%A%%B%%C
)
for /f "tokens=1-3 delims=-" %%A in ('powershell -command "(Get-Date).AddDays(-%DAYS%).ToString('yyyyMMdd')"') do (
set THRESHOLD_DATE=%%A%%B%%C
)
if !FILEDATE_EPOCH! LSS !THRESHOLD_DATE! (
echo Deleting file: %TARGET_DIR%!FILENAME!
del "%TARGET_DIR%!FILENAME!"
)
)