趣旨
あるフォルダ内で一定期間経過したフォルダを削除する必要があったので、備忘録的な自分用メモです。
実行コマンド
当月から2ヶ月前の「YYYYMM」名のフォルダを削除する場合
$now = (Get-Date).AddMonths(-2)
$delMonth = $now.ToString("yyyyMM");
Get-ChildItem D:\test\pdf | Where-Object {$_.Attributes -eq "Directory" -and $_.Name -eq $delMonth} | Remove-Item -recurse -force
当月から2ヶ月前の「YYYYMMDD」名のフォルダを全て削除する場合
$now = (Get-Date).AddMonths(-2)
$delMonth = $now.ToString("yyyyMM");
Get-ChildItem D:\test\pdf | Where-Object {$_.Attributes -eq "Directory" -and $_.Name -match "$delMonth(0[1-9]|[12][0-9]|3[01])"} | Remove-Item -recurse -force
念のため削除前に確認をしておく
Remove-Item -recurse -force
を
Sort-Object Name
に変更して、意図したフォルダ名が表示されていることを確認する
定期的な削除の実行
上記のスクリプトをバッチファイルから呼出し実行するバッチファイルを作成して
タスクスケジューラに、任意のトリガー(月一)でタスク実行されるように登録する