Windowsバッチファイルにおけるfor
コマンドは、一連のファイルや文字列に対して繰り返し操作を行うためのコマンドです。このコマンドを使用することで、複雑なタスクを自動化し、手作業を大幅に削減することができます。
@echo off for %%f in (*.txt) do ( echo ファイル名: %%f )
参考 コマンドプロンプトとは?
IT初心者でも、基本的なコマンドプロンプトの操作に慣れていれば、このコマンドの利用で日常の作業を効率化することが可能です。
この記事では、for
コマンドの基本から応用まで、初心者でも理解しやすいように、基本的な概念からスタートし、徐々に複雑な使用例を段階的に解説します。
システムエンジニアやプログラマーであれば知らないと恥ずかしい超・基本知識です。是非最後までご覧ください。
forコマンドとは?
for
コマンドは、繰り返し処理を行うためのコマンドです。
このコマンドを使うことで、ファイルの集合、数値の範囲、または文字列のリストに対して、一連のコマンドを繰り返し実行することが可能に。特に、日常的なタスクを自動化する際にfor
コマンドの効果を最大限に活かすことができます。
forコマンド:構文ルール
for
コマンドの基本的な構文は以下の通り。
for %%変数 in (セット) do コマンド [コマンド引数]
%%変数
- 繰り返しの各ステップで使用される変数を表します。
(セット)
- 繰り返しを適用する一連の値やファイル名などを指定します。
do
- 指定されたセットの各要素に対して実行するコマンドを定義します。
さっそくいくつかのサンプルコードを見ていきましょう。
例1: ファイル名のリストアップ
特定のディレクトリ内のすべての.txt
ファイルの名前を表示する例です。
@echo off for %%f in (*.txt) do ( echo ファイル名: %%f ) :: ディレクトリ内の各.txtファイルに対して、「ファイル名: ファイル名.txt」と表示されます。
例2: 数値の範囲による繰り返し
1から5までの数値を表示する例です。
@echo off for /l %%n in (1,1,5) do ( echo %%n ) :: 出力結果 :: 1 :: 2 :: 3 :: 4 :: 5
例3: ファイル内の特定の文字列を検索
指定されたディレクトリ内の.log
ファイル内で「Error」という文字列を含む行を検索します。
@echo off for %%f in (*.log) do ( find "Error" %%f )
forコマンドのオプション
Windowsバッチファイルにおけるfor
コマンドには、さまざまなオプションが存在し、これらを利用することでコマンドの動作をカスタマイズできます。
/D
- ディレクトリに対する繰り返しを行います。/R
- ディレクトリ構造を再帰的に処理します。/L
- 数値の範囲に基づいて繰り返しを行います。/F
- ファイルまたはコマンドの出力から読み取った結果に基づいて繰り返しを行います。
1. /D オプションの使用例
現在のディレクトリにあるすべてのサブディレクトリの名前を表示します。
@echo off for /D %%d in (*) do ( echo ディレクトリ: %%d )
2. /R オプションの使用例
特定のディレクトリ(ここではC:\Example
)とそのサブディレクトリ内のすべての.txt
ファイルを検索します。
@echo off for /R C:\Example %%f in (*.txt) do ( echo 発見されたファイル: %%f )
3. /L オプションの使用例
1から10までの数値を表示します。
@echo off for /L %%n in (1,1,10) do ( echo %%n )
4. /F オプションの使用例
特定のファイル(ここではfilelist.txt
)から読み取った各行に対して繰り返し処理を行います。
@echo off for /F "delims=" %%l in (filelist.txt) do ( echo 行: %%l )