バッチファイルで指定拡張子のファイルを処理(カレントディレクトリのみ)

バッチファイル

Windowsのコマンドプロンプトにおいて、FORループを使用することで、同じ操作を複数のファイルに対して実行できます。この記事では、バッチファイルのFORループについて紹介します。

FORループとは?

バッチファイルのFORループを使用すると、指定された拡張子のファイル一覧に対して、コマンドを実行できます。

FORループの基本構文

WindowsバッチファイルにおけるFORループの基本構文は次のようになります。

FOR %%A IN (set) DO command [command-parameters]
  • %%A はループ内で使用される変数です。
  • (set) はループを通じて処理される一連の項目です。
  • command [command-parameters] は、各項目に対して実行されるコマンドとそのパラメーターです。

使用例:複数のテキストファイルに同じコマンドを実行

ここでは、カレントディレクトリに格納されているテキストファイル(拡張子 .txt)をすべて処理するFORループについて、コマンドがひとつの場合と複数の場合を紹介します。

見つけたファイルに1つのコマンドを実行する場合

見つかったファイルに対して実行するコマンドがひとつの場合は、DOの後に続けてコマンドを記述します。以下は、カレントディレクトリ内のテキストファイル(拡張子 .txt)のファイル名をechoコマンドで表示する例です。

@echo off
FOR %%A IN (*.txt) DO echo %%A
pause

実行結果

file1.txt
file2.txt
file3.txt
続行するには何かキーを押してください . . .

見つけたファイルに複数のコマンドを実行する場合

見つかったファイルに対して実行するコマンドが複数の場合は、DOの後に丸括弧で囲んで複数のコマンドを記述します。以下は、カレントディレクトリ内のテキストファイル(拡張子 .txt)のファイル名をechoコマンドで表示し、typeコマンドでファイルの内容も表示する例です。

@echo off
FOR %%A IN (*.txt) DO (
    echo ---- %%A ----
    type %%A
)
pause

実行結果

---- file1.txt ----
Content of file1.
---- file2.txt ----
Content of file2.
---- file3.txt ----
Content of file3.
続行するには何かキーを押してください . . .

まとめ

FORループは、複数のファイルに同じ処理を繰り返し行う場合に有効です。ぜひご活用ください。

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