if(条件分岐)の使い方【バッチファイル】

※この記事は「2023年4月27日」に更新しました。

if(条件分岐)の使い方を紹介します。

バッチファイルでよく使われるコマンドです。
タカフミ
記事を書いている管理人の経歴は、以下の通りです。
  • 基本情報技術者資格所有者(ソフト開発の国家資格)
  • WordPress歴、10年以上
  • パソコン販売歴、約5年

ifコマンドの使い方

ifコマンドの使い方
タカフミ
ifコマンドは、条件分岐を行うためのものです。

バッチファイルだけでなく、他のプログラミング言語でも使われます。

重要な制御構造の一つです。




基本形

ifコマンドの基本形は、以下の通りです。

if 条件 成立したときのコマンド

条件が成立しなかったときの処理を分ける場合は、以下のようにします。

if 条件 成立したときのコマンド else 成立しなかったときのコマンド

文字列の比較演算を行う(数値)

おそらく、一番使いやすい形です。

if 文字列1 比較演算子 文字列2 成立したときのコマンド
タカフミ
比較演算子には、以下のようなものがあります。
比較演算子 意味
equ 等しい
neq 等しくない
lss より小さい
leq 以下
gtr より大きい
geq 以上

文字列が数値の場合、数値の大小を比較してくれるようになっています。

文字列の一致または不一致を条件に判断する

文字列を比較して一致しているかしていないかを条件にする方法です。

if (not) "文字列1" == "文字列2" 成立したときのコマンド

文字列1 と 文字列2 を比較して等しければ、成立したときのコマンドが実行されます。

タカフミ
not を付けると等しくなければという条件になります。

errorlevel値を条件に判断する

errorlevel(エラーレベル)という変数がコマンドプロンプトでは用意されています。

バッチファイルから何かのプログラムを実行したときに、終了時に渡される、正常に終了したかどうかを示す値です。

if (not) errorlevel エラーレベルの値 成立したときのコマンド

少しややこしいのですが、エラーレベルの値以上ならばという条件になります。

例えば、choiceコマンドなどで、選択したものによって処理を分ける場合、3択なら、1,2,3 という errorlevel値が想定できます。

このとき、以下の条件で if を使ったとします。

if errorlevel 1 成立したときのコマンド
タカフミ
これだと、1,2,3 全てで成立することになります。

特殊な使い方なので、choiceコマンドなどを使うときは、比較演算子の方がわかりやすいかもしれません。

ファイルの存在を条件に判断する

ファイルが存在するかどうかを条件にする方法です。

if (not) exist ファイル名 成立したときのコマンド

ファイルはカレントディレクトリを検索します。

not を付けると存在しなければという条件になります。

ifコマンドを使えば、複雑なバッチファイルも作成可能

ifコマンドを使う場合、単体コマンドとしてあまり使用せず、バッチファイルで使うことが多いです。

変数を条件判断に使うこともできます。

forコマンドや gotoコマンドなどと組み合わせれば、複雑な処理も可能です。

gotoコマンドを使えば、条件ジャンプを作ることもできます。

if 条件1 goto ラベル1
if 条件2 goto ラベル2
if 条件3 goto ラベル3

ただ、この書き方は少々古臭いので、マニアックになりすぎると非常に難解なコードが仕上がるかと思います。

他のプログラミング言語を使うと簡単だったということもあるので、本当にバッチファイル(コマンドプロンプト)でないとできないかどうかはジャッジしましょう。

ちなみに、バッチファイル作成について、興味のある方は、以下の記事をご参照下さい。

バッチファイル入門

バッチファイル作成方法【よく使うコマンドも解説】

2020年3月28日

最後に

他のプログラミング言語を経験した方は、わかっていただけるかと思うのですが、少しむずかしかったのではないでしょうか?

タカフミ
バッチファイルだと繰り返し処理を行う、forコマンドというものもあります。

これも他のプログラミング言語と比較するとなかなか難しいコマンドです。

今回の ifコマンドや forコマンドが使いこなせるようになれば、バッチファイルで本格的なものを簡単に作成することができます。