DOSコマンドだけで日付指定削除する方法
ゴミとなった古いファイルを、DOSコマンドだけで日付指定削除って出来ないかな・・・と、調べてはみたもののこれといったモノが無かったので、ROBOCOPYコマンドを使う方法を考えてみた。
最初は「/PURGE」や「/MIR」で空のフォルダ等と比較して削除する方法を考えたけど、不要ファイルを移動する方があっさりしているので、以下の方法を使うことに。
■前提事項
ROBOCOPYコマンドが使えること。
ROBOCOPYはVista以降のOSなら標準で入っているらしいけど、XPの場合はWindows Server 2003 Resource Kit Toolsの導入が必要らしい。
DL元:http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=17657
■手順
1.削除対象のデータを格納するフォルダを作成
2.ROBOCOPYで /MOV /MINAGE:31 とかのオプションを付けてNo.1のフォルダへ削除対象を移動
3.No.1のフォルダを削除
■バッチ例:31日以上前に作成されたC:\Temp\*.logファイルを削除する場合
DOS> MKDIR C:\Temp\DelDir
→ 同一ドライブ配下なら何処にどんな名前でも問題なし。
DOS> ROBOCOPY C:\Temp C:\Temp\DelDir *.log /MOV /MINAGE:31 /R:0 /NDL /NP >> C:\Temp\Deletelog.txt
→ オプションは「/MOV」以外は状況に合わせて適当に。ログを出力すると削除対象の確認が容易。
DOS> RD /S /Q C:\Temp\DelDir
→ 削除前に対象を確認したければ、このコマンドだけ削ってエクスプローラから削除でも可。
■その他
・削除対象にサブフォルダも含む場合は、ROBOCOPYオプションの「/S」や「/E」を利用すれば対応可能なはず
・日付指定や除外対象の設定は「/MINAGE」以外にも幾つかオプションがあるので臨機応変に対応可能なはず
・間違って重要データを消さないようにご注意を(不安な場合はNo.3の処理を手動でどうぞ)