バッチで不要なファイルを削除する【Forfiles】

溜まるログファイル、自動で削除できます

音声の録音ファイルや、データベースのダンプファイル、バックアップしているとどんどんファイルが溜まっていき、HDDの容量がひっ迫してしまいます。これは簡単なバッチと、Windowsタスクスケジューラーを組み合わせて自動化できるので、ぜひ自動化しちゃいましょう!!

バッチサンプル

溜まっていくdmpファイルを削除したかったので、更新日付から30日経過したファイルを削除します。

rem 名前:del_mbsbackup
rem 場所:C:\〇〇〇
rem 目的:1か月経過したdmpファイルの削除

forfiles /P C:\〇〇〇 /d -30 /m .dmp /C "cmd /c del @file"

forfilesコマンドを使って、目的のファイルを取り出し、削除するという流れです。

パラメータは下記のようになっています。

/P 場所 /d 日付指定 /m 検索マスク /c forfilesの中で実施するコマンド

デバッグする際は、delの前に、echoを付けてください。delを実行する前に、対象ファイルがリストされます。

forfiles /P C:\〇〇〇 /d -30 /m .dmp /C “cmd /c echo del @file”

これでピン!と来た方は、ここまでで大丈夫かと思いますが、???となった方は、下記を読み進めて一緒にすすめていきましょう。

バッチ作成方法

バッチをはじめて作成される方は、まずテキストエディタ(標準でついているメモ帳でよい)を開き、サンプルのバッチを入力します。場所は、削除したいファイルが入っているフォルダを指定してください。例えば c:\testの中に削除対象のファイルがあるとしたら、d:\〇〇〇となっているところをc:\testに置き換えます。

メモ帳を保存したとき、.txtファイルが作成されます。この.txt拡張子を、.batと書き換えれば、バッチファイルが作成されたことになります。.txtのtxtの文字を削除して、batと入力するだけです。

バッチファイルはわかりやすいところに保存しましょう。どこでも大丈夫です。

パラメーターについて

/P 場所 /d 日付指定 /m 検索マスク /c forfilesの中で実施するコマンド

  • /P 場所    c:\testのように場所を指定します
  • /d 日付指定   -30と指定すると、30日以降。-120と指定すると、120日以降と指定できます。
  • /m 検索マスク 消す対象のファイルを指定できます。.txtと指定すると、テキストファイルのみが抽出されます。

できたバッチファイルをタスクスケジューラーにセット

Windowsの機能でタスクスケジューラーがあります。

スタートボタン→Windows管理ツール→タスクスケジューラー

ここで、タスクの作成を行い、作成したバッチファイルを指定すればOKです。実施する時間や回数も細かく指定することができます。

環境はWindows Server 2012r2、Windows File Storage Server 2012r2で検証済みです。おそらくWindows10でもできると思いますので、試してみてくださいね。

タイトルとURLをコピーしました