Windowsで更新日が○日前のファイルを削除する方法

先日、Twitterで『Windowsで更新日が◯日前のファイルを削除する方法』について見かけたので、そういえばどのくらいあるんだろう?と思って調べてみた。
もともとPowerShellではできるであろうとは認識してたので、他にもお手軽な方法があるのかなと。

1.PowerShellの場合

まぁ、PowerShellでやる方法についてはMicroSoftでも公式で例を出してるので…。
PowerShellの2と3で、以下のようなやり方があるようだ。

PowerShell2

Get-ChildItem パス名 –Recurse | Where-Object{$_.CreationTime –lt (Get-Date).AddDays(-日数)} | Remove-Item

PowerShell3

Get-ChildItem パス名 –Recurse | Where-Object CreationTime –lt (Get-Date).AddDays(-日数) | Remove-Item

まぁ、PowerShell2の書き方であれば大体の環境で動作するので、そちらを使うと良いだろう。

2.cmd(コマンドプロンプト)の場合

cmd(コマンドプロンプト)で古いファイルを削除する場合、以下のようにする。
1行目のコマンドで対象のファイルを抽出、2行目で削除している。

forfiles -p パス名 -s -m *.* -d -日数 -c "cmd /c echo @path"
forfiles -p パス名 -s -m *.* -d -日数 -c "cmd /c del @path"

3.Explorerからファイルを検索して削除する場合

最後に、PowerShellもコマンドプロンプトもちょっと…全部GUIからやりたいという人の場合は、Explorerから対象のファイルを検索して削除すればいいだろう。
Explorerで削除を行う対象のパスに移動して、右上の検索バーに以下のように入力してやれば良い。

< 日付
もしくは
datemodified < 日付

これで、その日付よりも前のファイルだけを抽出できるので、あとはすべて選択して削除すればよい。

まぁ、普通に定期的に実行するならPowerShellかbatchでスクリプト作ってタスクマネージャで定期実行させるのをおすすめするけど…
世の中、誰もがスクリプト書けたりするわけでも無いので、お好みで。