[登録されているタグ]

[記事公開日]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バッチファイルの中でも最も強力な制御構文のひとつです。シンプルなファイルループから、複雑な文字列解析やサーバー管理タスクまで幅広く応用可能です。

バッチ処理を効率的に、かつ柔軟に構築するために必ず習得しておきたいコマンドです。

すべてを開く | すべてを閉じる

ページ上部へ戻る