[記事公開日]2025/10/06
🔁 forコマンドの使い方|繰り返し処理で効率的なバッチ作成を実現
もくじ
はじめに
バッチファイルで複数のファイルを処理したり、リストを順番に処理したいときに必須となるのが forコマンド です。ループ構造を実現する唯一の方法であり、ファイル操作・数値ループ・文字列分割・コマンド出力の繰り返し処理 など、応用範囲は非常に広いです。
この記事では、forコマンドの基本から高度な使い方までを丁寧に解説し、バッチ処理の効率を大幅に向上させる方法を紹介します。
🛠 forコマンドとは?
-
役割:指定されたリストや範囲を繰り返し処理する
-
用途:ファイルの一括処理、数値のループ、文字列の解析、コマンド結果の処理
-
特徴:柔軟性が高く、バッチファイルを高度に制御できる
📌 基本的な使い方
ファイルの繰り返し処理
for %%f in (*.txt) do echo %%f
-
カレントディレクトリの
.txtファイルを順番に処理 -
バッチファイル内では
%%f、コマンドプロンプトから直接実行するときは%f
数値のループ
for /L %%i in (1,1,5) do echo %%i
-
1から5まで1刻みでループ(出力:1 2 3 4 5)
コマンド結果を処理
for /F %%i in ('dir /b *.txt') do echo %%i
-
dir /bの結果を1行ずつ処理
文字列を分割
for /F "tokens=1,2 delims=," %%a in (data.csv) do echo %%a %%b
-
CSVファイルを読み込み、カンマ区切りで1列目と2列目を出力
🔍 主なオプション
-
/D: ディレクトリのみを対象に処理 -
/R: 再帰的にサブフォルダも含めて処理 -
/L: 数値のループを実行 -
/F: ファイルや文字列、コマンド出力を解析
📚 応用的な使い方
サブフォルダ内のファイルを再帰処理
for /R C:\data %%f in (*.log) do echo %%f
-
C:\data以下の.logファイルをすべて対象に処理
環境変数の文字列を分割
for /F "tokens=2 delims==" %%a in ('set PATH') do echo %%a
-
PATH変数の内容を解析して表示
複雑な処理をバッチに組み込む
for /F %%a in (servers.txt) do (
echo %%a に接続中...
ping -n 1 %%a >nul && echo 接続成功 || echo 接続失敗
)
-
servers.txtに書かれたサーバー一覧に対して接続テスト
📚 活用シーン
ファイル管理
-
利用例:大量のログファイルを一括で処理
-
効果:手作業を自動化し、大幅な時間短縮
データ解析
-
利用例:CSVや設定ファイルを読み込み、必要な情報を抽出
-
効果:スクリプトだけで軽量なデータ処理が可能
ネットワーク管理
-
利用例:サーバーリストをループ処理して接続確認
-
効果:運用管理を効率化
⚠️ 注意点
-
バッチファイル内では必ず 変数を二重パーセント(%%) で記述
-
複雑なforループは可読性が下がりやすいため、コメントを入れるのが望ましい
-
ファイルパスにスペースが含まれる場合は
"%%f"のようにクォートが必要 -
無限ループの防止に注意(数値ループでは必ず終了条件を指定)
📊 まとめ表
| コマンド | 用途 | 活用例 |
|---|---|---|
| for %%f in (*.txt) do … | ファイル処理 | 一括操作 |
| for /L %%i in (1,1,5) do … | 数値ループ | カウンタ処理 |
| for /F %%i in (‘dir /b’) do … | コマンド結果処理 | 出力解析 |
| for /F “tokens=…” %%a in (file) do … | 文字列分割 | CSV解析 |
関連記事
さいごに
「for」コマンドは、Windowsバッチファイルの中でも最も強力な制御構文のひとつです。シンプルなファイルループから、複雑な文字列解析やサーバー管理タスクまで幅広く応用可能です。
バッチ処理を効率的に、かつ柔軟に構築するために必ず習得しておきたいコマンドです。
