本文へスキップ
BecomeCoder

バッチファイルコース · 第4章 引数と制御構文 · レッスン14

for で繰り返す ― まとめて処理する

導入

同じ処理をたくさんの対象に対して繰り返すのが for です。「フォルダ内の全ファイルに何かする」「1から10まで数える」といった作業を1行で書けます。

説明

バッチファイルの中では、for変数%%i のように % を2つ 重ねます(コマンドプロンプトに直接打つときは %i と1つ。この違いはよくつまずくポイントです)。

決まった値を順に処理 する基本形です。

@echo off
for %%f in (りんご みかん ぶどう) do (
    echo 果物: %%f
)

フォルダ内のファイル をまわすには、ワイルドカード * を使います。

@echo off
rem カレントフォルダの .txt ファイルを一覧
for %%f in (*.txt) do (
    echo 見つかった: %%f
)

数を数える には /lループ)を付けて (開始,増分,終了) を指定します。

@echo off
rem 1 から 5 まで
for /l %%i in (1,1,5) do (
    echo カウント: %%i
)

行ごとに処理する /f、フォルダを再帰的にたどる /r など、for には強力なオプションがそろっていますが、まずはこの3つの形を押さえれば十分です。

変数名は1文字 for の変数は %%i %%f のように 1文字 にします。分かりやすさのために %%file などと長くはできない、というルールです。

やってみよう

for /l を使って「1 から 10 までの数」を順に表示するバッチを書いてみましょう。(1,1,10) の3つの数字が「開始・増分・終了」を表します。