Categories: Windows

バッチファイルでif文を使って条件分岐

本記事ではWindowsのバッチファイルでif文を使って条件分岐する方法を紹介します。

ifを用いた条件分岐

条件式に使用できる比較演算子については後述しますが、if文を用いた条件分岐は以下の文法となります。条件式が正の場合に、括弧内の処理内容が処理されます。

if 条件式 (
  処理内容
)

if / else if / elseを用いた条件分岐

複数に分岐させる場合には、以下のように「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より小さい(<)

if文を用いたサンプルの紹介

二つの数字をユーザが入力して、どちらが大きいかを判定するサンプルバッチを以下に紹介します。

@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

動作例は以下になります。

Haruoka