シンプル・スマートな画面録画ソフト EaseUS RecExperts

bat002

引き続き、汎用的に使えそうなバッチのお勉強です。 Windowsのダウンロードフォルダってあるじゃないですか。 IEやChromeでファイルをダウンロードすると自動的にファイルを保存するためのフォルダなんですが、ここに保存されたファイル、定期的に整理しないとどんどんファイルが溜まっていってしまうんですよね。 みなさんも、そんな経験があるんじゃないかなと思います。

このフォルダを自動的に整理できたらいいのに…。 そんなバッチをちょうど海外サイトHow to Geekで紹介していたので、僕も試してみました。 バッチ勉強も兼ねて。

 
【新機能】わからないことはAIに聞いてみよう
質問内容を入力すると、皆さんの疑問にAIがお答えします。

※当機能は現在ベータ版です。 予告なく公開終了する場合があります。

How to Geek


How to Automatically Delete Files in Your Download Folder on a Schedule

こちら、今回のアイデアの元ネタとなった記事です。

30日以上前のファイルを削除するバッチ

さて、そのバッチファイルですが、バッチというよりはほぼコマンド一行だけのものです。 REMはコメントアウトなので、気になさらず。 2行目が今回のキモになる部分です。

REM Remove files older than 30 days
forfiles /p "C:\Users\YOURUSERNAME\Downloads" /s /m *.* /c "cmd /c Del @path" /d -30

処理の内容:forfilesコマンドで指定したファイルを選択して削除

一応中身の処理を確認しておきましょう。

forfiles /p "C:\Users\YOURUSERNAME\Downloads" /s /m *.* /c "cmd /c Del @path" /d -30

forfiles コマンドは、条件に合うファイルを出力して、特定のコマンドを実行させる処理を実行できます。

/p はフォルダのパスを指定するオプション。 ダブルクォーテーションでくくったファイルパスの中のファイルで条件を満たすものを出力します。

/d は最終更新日を指定するオプションです。 "/d -30" と指定した場合は最終更新日が30日以上前のファイルを条件に出力します。 daysのdでしょうね。

/c は出力したファイルに実行するコマンドを指定するオプション。 これもダブルクォーテーションでくくって、コマンドを実行できます。 今回のバッチではDelコマンドで条件にあったファイルを削除するコマンドを実行してます。

/s は指定されたフォルダのサブディレクトリも出力対象にします。 特にオプション用のパラメータはなさそう。

/m は検索マスクのオプション。 特定のファイル名や拡張子のみを選択したい場合はここで指定可能ですね。

 

forfilesコマンドのリファレンスは、こちらをどうぞ。


Forfiles

このバッチをタスクで定期的に実行

2014-1113-182332_s

このバッチをタスクスケジューラを使って定期的に実行するようにしましょう。 タスクスケジューラはWindows7だとプログラム→アクセサリ→システムツールにあります。

タスクのトリガーは、定期的なスケジュールでいいでしょう。 例えば月曜日のお昼12時などに定期的にバッチを実行するようにするのが良いでしょう。 もちろん、PCが起動している時間帯にセットしておかないといけないですね。
2014-1113-182411_s

実行する操作の部分で、先ほど作成したバッチファイルを指定しておきます。
2014-1113-182432_s

タスクスケジューラ画面はWindowsのバージョンによって画面が多少違いますが、基本的な操作方法はあまり変わらないですよ。

 
この記事で解決しなかった疑問は疑問はAIに聞いてみよう
質問内容を入力すると、皆さんの疑問にAIがお答えします。

※当機能は現在ベータ版です。 予告なく公開終了する場合があります。

まとめ

  • forfilesコマンドで更新日時の古いファイルを削除するバッチを作成
  • タスクスケジューラで定期的に実行する

こうしたバッチの一部分に使えそうな処理を今後もちょこちょこと紹介していきたいですね。 小さなバッチを組み合わせて、便利なバッチを作っていきましょう。 ということで、以上です。