If文を利用した条件判定処理 (If文の書式) - MS-DOS コマンド
バッチファイルのif文について紹介します。
概要
バッチファイル内で条件判定して処理を分岐させたい場合にはif文を利用します。
書式
複数行の場合は以下の書式となります。
if [条件式] (
[コマンド 1]
[コマンド 2]
...
)
1行で記述する場合は以下の書式となります。
else文を記述する場合の書式は次の通りです。
if [条件式] (
[コマンド 1]
[コマンド 2]
...
)else(
[コマンド 3]
[コマンド 4]
...
)
else if文を記述する場合の書式は次の通りです。
if [条件式] (
[コマンド 1]
[コマンド 2]
...
)else if [条件式] (
[コマンド 3]
[コマンド 4]
...
)else(
[コマンド 5]
[コマンド 6]
...
)
例1
以下のバッチファイルを作成します。
コード
@ECHO OFF
SET /P INPUT_STR=
IF "%INPUT_STR%"=="Q" (
ECHO "Q"が入力されました。
) ELSE (
ECHO "Q"以外が入力されました。
)
解説
SETコマンドで文字の入力を受け付けます。
SET /P INPUT_STR=
入力された文字が、"Q"であれば、「 "Q"が入力されました。」のメッセージを画面に表示し、
それ以外の文字であれば、「"Q"以外が入力されました。」のメッセージを表示します。
IF "%INPUT_STR%"=="Q" (
ECHO "Q"が入力されました。
) ELSE (
ECHO "Q"以外が入力されました。
)
実行結果
作成したバッチファイルを実行します。
入力待ちの状態になります。"Q"を入力して[Enter]キーを押します。
「"Q"が入力されました。」のメッセージが表示されます。
再度バッチファイルを実行します。入力画面で"P"を入力して[Enter]キーを押します。
「"Q"以外が入力されました。」のメッセージが表示されます。
バッチファイルで、if文を利用して条件分岐を作成できました。
例2
以下のバッチファイルを作成します。
コード
@ECHO OFF
SET /P INPUT_STR=
IF "%INPUT_STR%"=="Q" (
ECHO "Q"が入力されました。
) ELSE IF "%INPUT_STR%"=="P" (
ECHO "P"が入力されました。
) ELSE (
ECHO "Q", "P" 以外が入力されました。
)
解説
先ほどのコードに
ELSE IF
文を追加したコードです。"P"が入力された場合にもELSE IFで分岐します。
実行結果
"Q"を入力した結果です。「"Q"が入力されました。」のメッセージが表示されます。
"P"を入力した結果です。「"P"が入力されました。」のメッセージが表示されます。
"X"を入力した結果です。「"Q", "P" 以外が入力されました。」のメッセージが表示されます。
注意
ELSE や ELSE IF の前後の括弧にはスペースが必要です。
以下のバッチファイルを実行すると「ELSE( の使い方が誤っています。」エラーになります。
IF "%INPUT_STR%"=="Q" (
ECHO "Q"が入力されました。
)ELSE(
ECHO "Q"以外が入力されました。
)
また、以下の改行する記述法も
「'ELSE' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
エラーになります。
IF "%INPUT_STR%"=="Q" (
ECHO "Q"が入力されました。
)
ELSE
(
ECHO "Q"以外が入力されました。
)
著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。