先日、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でスクリプト作ってタスクマネージャで定期実行させるのをおすすめするけど…
世の中、誰もがスクリプト書けたりするわけでも無いので、お好みで。