本日はバッチファイルの作り方の2回目として、if文を解説いたします。
if文は、どんなプログラミング言語にもある「条件分岐」と呼ばれます。
簡単に例えるなら、
・信号が赤だから、止まる
・信号が青だから、渡る
のように、条件に応じて、処理を変えることができます。
では、コマンドプロンプトで確認していきます。
if文の公式
if文の公式は、下記になります。
if文の条件式について4つのパターンをご紹介します。
if文の条件式① 文字列が等しいかどうか
文字列比較の構文です。
では、コマンドプロンプトを起動し試してみます。
最初に準備として、変数todayにmondayという値を代入します。

では、if文です。
内容は、変数todayの値が、Fridayだったら、true そうではなかったら falseを表示するif文です。

では、条件式のfridayをmondayに変えると、どうなるでしょうか?
想像通りtrueが返ってきます。

if文の条件式② 文字列・数値の比較
比較する演算子は、下記があります。構文に比較演算子をあてはめます。
if (/i) 文字列A 比較演算子 文字列B コマンド
※/i は文字列比較の際に、大文字小文字を区別しない
equ 等しい
neq 等しくない
gtr より大きい
geq 以上
leq 以下
lss より小さい(=未満)
実際に試してみます。まずは、文字列比較から行います。
文字列aaa と文字列aaaは等しいか?等しいならtrue 違うならfalseです。
当然trueが返ってきます。

では、次に数値の比較を行います。
数値1は数値0とより大きいか?大きいならtrue 小さいならfalseです
trueが返ってきます。

if文の条件式③ エラーレベル errorlevel
続いて、エラーレベルについて解説します。
エラーレベルとは、直前に実行したコマンドの結果を数値で表します。
正常にコマンドが終了した場合は0が返ってきます。リターンコードという言い方も一般的です。
下記はdirコマンドを実行して、正常にコマンドが終了したので、リターンコードが0です。

下記は、aaa.logがあるかdirコマンド実行し、調べた結果ファイルがなかったので
エラーコード1が返ってきます。

if文は下記のように使います。
直前のコマンドが正常だったらtrue 異常だったらfalseです。

if文の条件式④ ファイルの存在の有無
続いて、ファイルの存在の有無によって、コマンドを使い分ける構文です。
aaaa.logというファイルがあれば、trueを返し、
aaaa.logというファイルがなければ、falseを返します。

まとめ
if文について紹介させていただきました。
if文は、for文と並び使用頻度が高いです。
コマンドプロンプトで気軽に練習できるので、どんどん試してみましょう!