2013年1月23日水曜日

BATファイル 直近のファイルを残して古いファイルを消す

Windowsコマンドプロンプトのバッチファイルで直近のファイルを残して古いファイルを消すにはforを使うとよい。 以下はC:\Tempにあるzipファイルのうち直近5個を残して古いものから削除する例である。
for /f "skip=5" %%i in ('dir /b /o-d C:\Temp\*.zip') do (
    del C:\Temp\%%i
)
dir /b /o-d ~ でファイルを新しい順にリストしそれを順次for文で処理する。 for文に skip=5 を付けているので、リスト先頭から5行、つまり最新のzipファイル5つは無視し、後は del で消すという意味になる。%%iにはファイル名のみが入りパスは入らないので、delするときに改めて指定する必要があることに注意。

0 件のコメント:

コメントを投稿