導入
同じ処理をたくさんの対象に対して繰り返すのが 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つの数字が「開始・増分・終了」を表します。