2011年3月2日水曜日

FOR /L = FOR文で普通に数を数える方法 - Windowsのコマンドプロンプト(bat,cmd)

WindowsコマンドのFOR
○Windows XP
コンピューター言語の FOR 文と言えば、数を数えて繰り返す例が良く出てきます。
Windowsの FOR コマンドで普通に数を数えたい時は、FOR に /L オプションを付けます。


**** 書式
--------
for /l %変数名 in (初期値, 増分, 最後の数) do 実行するコマンド
--------

o コマンド名やキーワードは、大文字小文字のどちらでも大丈夫です。
    + 但し、変数名に限り、大文字小文字を区別します。
o /l = /L オプションです。
o %変数名 = 変数になる名前です。変数名は1文字で指定します。(例: %i)
    + バッチファイルでは、%%変数名。「%」を2つ書きます。
    + 変数名のおすすめは、英字1文字。こちらはヘルプに書かれています。
        + 大文字小文字を区別しますので、使う時には気を付けます。
        + (仕様外の動作)実際には、英字の他に、数字や、漢字などの全角文字も使用出来ました。(= Windows XPの場合です。)
o 初期値 = 最初に変数に入る値です。整数で指定します。
    + 負の数も指定出来ます。
    + 実数を指定すると、小数点以下を無視するみたいです。
o 増分 = 繰り返す時に増やす数です。整数で指定します。
o 最後の数 = 終了条件となる数です。整数で指定します。
    + 増分計算する時に「この値を通過」すると、実行は止まります。
o 実行するコマンド = DO の後に書きます。
    + 複数並べたい時は、丸括弧(= 小括弧)で括る事も出来ます。
        + 括弧内で「環境変数を設定し、その値を参照する」時には、小技が必要になります。
        + 詳しくは、「バッチファイル。IF文やFOR文の中で複数コマンドを書く時の注意点
    + 大掛かりになる時は、CALL文が便利です。
    + 変数の使い方については、こちらをどうぞ
        + 「%変数の使い方
        + 「環境変数の使い方。置換と部分文字列

** 構文の区切り文字について
o カンマ区切りですが、空白区切りでも正しく動きました。
    + もっとも、ヘルプには書いていませんので、カンマを付けて書く事をおすすめします。


**** 戻り値 ( ERRORLEVELの値。確認分のみ )
o (設定なし) = このコマンドは、ERRORLEVELの値を更新しません。
    + 但し、FOR の中で実行するコマンドが ERRORLEVELの値を更新する事があります。
    + 「[1 の使い方が誤っています。」 = FOR文の書き方が間違っています。FOR の文法を見直して下さい。


**** 使用例
o コマンドプロンプト画面で動かす時の書き方
--------
@echo off
for /l %i in (3, 9, 39) do echo ミクさんの買い物カゴの中身。ネギ %i 本
echo on
--------

    + コマンド名やキーワードは、大文字小文字のどちらでも大丈夫です。
    + /l = /L オプションです。

o バッチファイルで動かす時の書き方
--------
@echo off
echo 蕎麦に合うネギを買いに来たミクさん。
for /l %%i in (3, 9, 39) do echo ミクさんの買い物カゴの中身。ネギ %%i 本
echo お蕎麦の事を忘れていませんか。ミクさん。
--------

    + 変数名の前に「%」を2つ付けます。


**** メモ
o 繰り返し文の途中で強制的に止めたくなった時は、「Ctrl」キーを押しながら「C」キーを連打します。
    + 短い処理の場合、3回程度押すと止まります。
o 途中で停止したい時は、「Ctrl」キーを押しながら「S」キー。


**** 確認したバージョン
o Windows XP Service Pack 3


==
関連ページ:
    ▼FOR = 繰り返し実行する
    ▼Windowsコマンド。制御文と環境変数▼ABC順
    ▼コマンドプロンプト画面
    ▼制作メモ
    > FOR のオプション無し = FOR文でファイルだけを処理する、もしくは、文字列を処理する
    FOR /D = FOR文でフォルダーだけを処理する、もしくは、文字列を処理する
    FOR /R = FOR文でサブフォルダーも処理対象にする
(2011年5月16日追加と訂正。書式欄の変数名。大文字小文字を区別する。推奨は英字のみ)