溜まるログファイル、自動で削除できます
音声の録音ファイルや、データベースのダンプファイル、バックアップしているとどんどんファイルが溜まっていき、HDDの容量がひっ迫してしまいます。これは簡単なバッチと、Windowsタスクスケジューラーを組み合わせて自動化できるので、バッチで自動化しちゃいましょう!!
まずはサンプルを作ります
溜まっていくdmpファイルを削除したかったので、更新日付から30日経過したファイルを削除します。
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”
これをコマンドプロンプトに打ち込んで、削除したい対象がでてきたらOK。
これでピン!と来た方は、ここまでで大丈夫かと思いますが、
???となった方は、下記を読み進めて一緒にすすめていきましょう。
バッチ作成方法
バッチをはじめて作成される方は、まずテキストエディタ(標準でついているメモ帳でよい)を開き、サンプルのバッチを入力します。場所は、削除したいファイルが入っているフォルダを指定してください。例えば 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でもできると思いますので、試してみてくださいね。
フォルダを削除したかった方へ
あれ、フォルダが消えてない…。そうかフォルダごと削除したかったんだってなった方←は、関連記事にフォルダを削除するバッチの記事がありますのでご覧ください。同じように日付を指定できるので便利です。