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