本記事ではWindowsのバッチファイルでif文を使って条件分岐する方法を紹介します。
条件式に使用できる比較演算子については後述しますが、if文を用いた条件分岐は以下の文法となります。条件式が正の場合に、括弧内の処理内容が処理されます。
if 条件式 (
処理内容
)
複数に分岐させる場合には、以下のように「else if」や「else」を用いて書くことができます。条件式Aが偽のとき、else ifで記述された条件式Bが判定され、正であれば処理内容2が処理されます。
全ての条件式が偽の場合には、elseの中身(処理内容3)が処理されます。
if 条件式A (
処理内容1
) else if 条件式B (
処理内容2
) else (
処理内容3
)
比較する対象が文字列か数値かによって、比較演算子が異なるので注意が必要です。
演算子 | 内容 |
a == b | 等しい |
not a == b | 等しくない |
演算子 | 内容 |
equ | 等しい(=) |
neq | 等しくない(≠) |
geq | 以上(≧) |
leq | 以下(≦) |
gtr | より大きい(>) |
lss | より小さい(<) |
二つの数字をユーザが入力して、どちらが大きいかを判定するサンプルバッチを以下に紹介します。
@echo off
set /p num1="1つ目の数字を入力してください:"
set /p num2="2つ目の数字を入力してください:"
if %num1% equ %num2% (
echo 等しいです
) else if %num1% gtr %num2% (
echo %num1%が大きいです
) else (
echo %num2%が大きいです
)
pause
動作例は以下になります。