• このエントリーをはてなブックマークに追加

【Windowsバッチ】ファイルを削除するバッチファイルを作ってみた。

  • このエントリーをはてなブックマークに追加

2250fd89369148897c5ebb54738db8ad_s

こんにちはZaco shinです。

自分が使っているパソコンのダウンロードフォルダを見てみると、ファイルが大量にあり、これをバッチで定期的に消せないのかなと思い、バッチファイルを作ってみました。(別にこんなことせずにファイルを削除すればいいんですけどね。。)

バッチファイル作ったこともなかったので、作ってみました。初心者は試してみると良いかもです。

スポンサーリンク
Sponsords Link

環境

OS:Windows 7

アプリ:メモ帳

forfilesコマンドで対象のファイルを削除する

今回はforfileというコマンドでできるようなので、こちらのコマンドを使い、以下のような動きのバッチにしてみました。
①削除するファイルをログとして記録する
②ファイルを削除する
③フォルダを削除する
※②と③は同時にできるやり方があるかもしれませんが、わからなかったので、今回はこんな感じにしました。②だけやってもフォルダが残ってしまったので。。

# rem ---削除対象ファイルのログに記録する---
forfiles /P C:\Users\test\Downloads /D -15 /C "cmd /c echo %date% @file @fdate" >> C:\Users\test\Desktop\work\del.log
# rem --ファイルを削除する--
forfiles /P C:\Users\test\Downloads /D -15 /C "cmd /c del /F /Q @file"
# rem --フォルダを削除する--
forfiles /P C:\Users\test\Downloads /D -15 /C "cmd /c rmdir /Q @file"

今回の処理内容について

forfilesのオプションなどはMicrosoftのページに詳細が書いてあるのですが、今回やっていることを書いておきます。

①削除対象のファイルをログに記録する

/Pオプションで作業対象のパスを指定し、/Dで最終更新日が本日から15日前を今回のターゲットにします。これで削除対象のファイルが決まります。

その後、上記で抽出したファイルに対して/Cで実行するコマンドを記載します。””で囲んでいる部分を実行してその結果をテキストに吐き出します。テキストに書く内容は@date(本日の日付),@file(ファイル名),@fdate(ファイルの最終更新日付)にしました。

②ファイルを削除する

①の処理がベースになって、15日前のものを対象にして、DELコマンドを実行します。DELコマンドのオプションで/F(読み取り専用のファイルも強制削除)、/Q(確認メッセージを出さない)を行っています。

③フォルダを削除する

②をやればすべてきれいになると思ったらフォルダが残ってしまったので、②と同じような条件でrmdirコマンドでフォルダを削除します

後はこれをタスクスケジューラに登録して定期的に実行させるだけで完了です。

スポンサーリンク
Sponsords Link
  • このエントリーをはてなブックマークに追加

ZacoDesign

スポンサーリンク
Sponsords Link