導入
「ファイルがあれば処理する」「入力が空なら注意する」――状況によって動きを変えるのが 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 /p で y か n を尋ね、if /i を使って大文字でも小文字でも「はい/いいえ」を判定するバッチを書いてみましょう。