2011年1月30日日曜日

ELSE = IFで実行しない時に実行する - Windowsのコマンドプロンプト(bat,cmd)

Windowsコマンド。制御文と環境変数
○Windows XP
先行する IF の条件に一致しなかった時に実行します。
ELSE は、IF コマンドに付随する識別子です。

**** 書式
--------
if 条件 ( 真の時に実行するコマンド ) else 偽の時に実行するコマンド
--------

o コマンド名やキーワードは、大文字小文字のどちらでも大丈夫です。
o 条件 = 書き方は、「IF = 条件に一致したら実行する」の説明をご覧下さい。
o 真の時に実行するコマンド = ELSE 以下を付ける時は、丸括弧(= 小括弧)で括ります。
o 偽の時に実行するコマンド = 条件を満たさなかった時に実行するコマンドです。


**** 使用例
o IF文全部を1行で書く方法
--------
@echo off
if "%1"=="ミクさん" ( echo おはようございます、ミクさん。 ) else echo こんにちは。
--------

    + 「真の時に実行するコマンド」を、丸括弧(= 小括弧)で括ります。
    + 「(」の後ろの空白や「)」の前の空白は、詰めても大丈夫です。
    + 「真の時に実行するコマンド」の中では「)」を使う事が出来ません。全角の「)」なら大丈夫です。
        + ELSE を使う代わりに、GOTO で代用出来ます。
        + 詳しくは、「バッチファイル。IF文やFOR文の中で複数コマンドを書く時の注意点
    + ELSE の後も括弧を使用出来ます。
    + @echo off は、コマンド内容を表示しないようにするコマンドです。
        + 不要なら、削除して下さい。

o 真の時に実行するコマンドを、複数行で書く方法
--------
@echo off
if "%1"=="ミクさん" (
echo おはようございます。ミクさん。
echo 皆さん、おはようございます。
) else echo こんにちは。
--------

    + 「(」までが1行です。
    + IF 文内の最初の空白は、無くても大丈夫です。
    + 括弧内は1行でも大丈夫です。空にすると文法エラーになります。
    + 「else」の前で改行すると、そこで文が終わります = 文法エラーになります。
    + なお、括弧内で、同じ環境変数に対して代入と参照を行う時は、注意が必要です。
    + 詳しくは、「バッチファイル。IF文やFOR文の中で複数コマンドを書く時の注意点

o どちらも括弧を付けて書く方法
--------
@echo off
if "%1"=="ミクさん" (
echo おはようございます。ミクさん。
echo 皆さん、おはようございます。
) else (
echo こんにちは。
)
--------

    + IF 文内の最初の空白は、無くても大丈夫です。
    + 最後の「)」の前は、改行しなくても大丈夫です。


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


==
関連ページ:
    ▼Windowsコマンド。制御文と環境変数▼ABC順
    ▼Windowsコマンド一覧▼ABC順
    ▼コマンドプロンプト画面
    ▼制作メモ
    > ▼FOR = 繰り返し実行する
    GOTO = 指定したラベルに移動する
    CALL = バッチファイルやラベルを呼び出す