本文へスキップ
BecomeCoder

バッチファイルコース · 第4章 引数と制御構文 · レッスン12

if で条件分岐する ― 場合分け

導入

「ファイルがあれば処理する」「入力が空なら注意する」――状況によって動きを変えるのが if です。バッチの判断力そのものです。

説明

代表的な3つの使い方があります。

文字列の比較if "%変数%"=="値" と書きます。変数が空でもエラーにならないよう、両辺をダブルクオートで囲むのが定石です。

@echo off
set /p answer=続けますか? (y/n):
if "%answer%"=="y" (
    echo 続行します
) else (
    echo 中止しました
)

ファイル・フォルダの存在確認if exist

@echo off
if exist "data.txt" (
    echo data.txt はあります
) else (
    echo data.txt が見つかりません
)

大文字小文字を区別しない 比較は /i を付けます。Y でも y でも通したいときに便利です。

if /i "%answer%"=="y" echo はいと解釈しました

丸カッコ ( ) で複数行の処理をまとめられます。else閉じカッコと同じ行 に書くのがルールです() else ( の形)。改行位置がずれるとエラーになるので気をつけましょう。

== は文字列専用 == は文字列の比較です。数の大小は if %a% GTR %b%(GTR=より大きい)のように、EQU LSS GTR LEQ GEQ NEQ という比較語を使います。

やってみよう

set /pyn を尋ね、if /i を使って大文字でも小文字でも「はい/いいえ」を判定するバッチを書いてみましょう。