ファイルの検索結果に対して処理を行う

コマンドプロンプトには驚くような機能があったりします。

今回行うのは、ファイルの検索結果に対して何か実行するというものです。実はUNIXなら簡単、Windowsでは難しい事の1つです。


利用するコマンドはforになります。以下はWindows XPで動作を確認しています。

> FOR /R c:data %a IN (*.txt) DO @echo %a

注目してほしいのは色をつけた部分です。このコマンドではc:data以下(サブディレクトリ内も含む)にある*.txtを検索し、検索した結果を表示(@echo)します。

別の例をもう1つあげます。

> FOR /R . %a IN (*.bak) DO del %a

このコマンドではカレントディレクトリ()以下の*.bakを検索し、見つけたファイルを削除(del)します。より複雑な検索も(例:test*.cpp;*.h)できます。さらに複雑な使用例については「for /?」で確認してください。

これらはいきなり書くのも少し難しいため、良く使う例をBATファイル化しておくと良いかもしれません。

Leave a Reply

Be the First to Comment!

Notify of
avatar
wpDiscuz