• ベストアンサー

バッチファイルでフォルダ削除

初心者の為バッチファイルの御教授お願いします。 下記のようなフォルダがあります。 0001_2015_11_25 0002_2015_11_25 0001_2015_10_10 0002_2015_10_10 みていただくと分かると思いますが日付を含んだフォルダ名となっております。 このフォルダ名から日付を取得し、指定した日数より古い日付を持ったフォルダを削除したいと思っています。 例えば日数を30とすると下記フォルダのみが残るようにしたいと思っています。 0001_2015_11_25 0002_2015_11_25

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

日数計算は、バッチでやるのは不可能では無いですが、面倒です。 日付計算だけ、VBScriptでやります。 @echo off set OLD=30 echo WScript.Echo DateAdd("d",-%OLD%,Date()) > tmp.vbs for /f "tokens=1-3 delims=/-" %%A in ('cscript //nologo tmp.vbs') do set YMD=%%A_%%B_%%C del tmp.vbs for /d %%D in (????_????_??_??) do call :sub %%D goto :EOF :sub set D=%1 set YYYY_MM_DD=%D:~5% if %YYYY_MM_DD% LSS %YMD% rd /s /q %1 goto :EOF