読者です 読者をやめる 読者になる 読者になる

DOSコマンドだけで日付指定削除する方法

ゴミとなった古いファイルを、DOSコマンドだけで日付指定削除って出来ないかな・・・と、調べてはみたもののこれといったモノが無かったので、ROBOCOPYコマンドを使う方法を考えてみた。
最初は「/PURGE」や「/MIR」で空のフォルダ等と比較して削除する方法を考えたけど、不要ファイルを移動する方があっさりしているので、以下の方法を使うことに。


■前提事項
ROBOCOPYコマンドが使えること。
ROBOCOPYVista以降の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の処理を手動でどうぞ)