PR

【バッチ】if/elseコマンドを1分でわかりやすく解説

Command

if コマンドは、条件分岐を行うために使用されます。このコマンドを使用することで、特定の条件が真の場合にのみコマンドを実行させることができます。

@ECHO OFF
SETLOCAL

REM 数値比較の例
SET /A num=10
IF %num% EQU 10 (
    ECHO 数値は10です。
) ELSE (
    ECHO 数値は10ではありません。
)

REM 文字列比較の例
SET str=Hello
IF "%str%"=="Hello" (
    ECHO 文字列はHelloです。
) ELSE (
    ECHO 文字列はHelloではありません。
)

REM ファイル存在確認の例
IF EXIST "example.txt" (
    ECHO example.txtは存在します。
) ELSE (
    ECHO example.txtは存在しません。
)

REM 複数の条件を組み合わせる例
IF %num% EQU 10 (
    IF "%str%"=="Hello" (
        ECHO 数値は10で、文字列はHelloです。
    ) ELSE (
        ECHO 数値は10ですが、文字列はHelloではありません。
    )
) ELSE (
    ECHO 数値は10ではありません。
)

REM 終了処理
ENDLOCAL

参考 setlocal / setコマンド

このページではコマンドプロンプトでの if コマンドの基本的な使い方を解説します。

このページで学べる内容
  • ifコマンドの使い方
    • 条件分岐の種類(数値比較・文字列比較・ファイル存在確認)
  • elseコマンドの使い方

システムエンジニアやプログラマーであれば知らないと恥ずかしい超・基本知識です。是非最後までご覧ください。

参考 コマンドプロンプト入門

スポンサーリンク

ifコマンドの基本

if コマンドは、条件分岐を行うために使用されます。if コマンドを使用することで、特定の条件が真の場合にのみコマンドを実行させることが可能。

基本的な構文は以下の通り。

IF [条件] [コマンド]

ポイント 条件の種類

  • 数値比較
    • 数値が等しい、大きい、小さいなどを比較。
  • 文字列比較
    • 文字列が等しいかどうかを比較。
  • ファイルの存在確認
    • 指定したファイルが存在するかどうかを確認。

1. 数値比較

数値比較では、2つの数値を比較します。主な演算子には EQU (等しい)、NEQ (等しくない)、LSS (より小さい)、LEQ (以下)、GTR (より大きい)、GEQ (以上) があります。

@ECHO OFF
SETLOCAL

SET /A num1=10
SET /A num2=20

IF %num1% EQU %num2% (
    ECHO %num1% と %num2% は等しい
) ELSE (
    ECHO %num1% と %num2% は等しくない
)

ENDLOCAL

rem 出力結果「10 と 20 は等しくない」

2. 文字列比較

文字列比較では、2つの文字列が等しいかどうかを比較。文字列を比較する場合は、変数をダブルクォーテーションで囲むのが一般的です。

@ECHO OFF
SETLOCAL

SET str1=Hello
SET str2=World

IF "%str1%"=="%str2%" (
    ECHO %str1% と %str2% は等しい
) ELSE (
    ECHO %str1% と %str2% は等しくない
)

ENDLOCAL

rem 出力結果「Hello と World は等しくない」

3. ファイルの存在確認

ファイルの存在確認では、指定したファイルまたはディレクトリが存在するかどうかを確認します。

@ECHO OFF
SETLOCAL

IF EXIST "example.txt" (
    ECHO example.txt は存在します
) ELSE (
    ECHO example.txt は存在しません
)

ENDLOCAL

rem 出力結果「example.txt は存在しません」

↑の3つサンプルコードは、コマンドプロンプトで if 文を使用する際の基本的な条件の種類と使い方を超・簡単に説明しています。

実際のスクリプトでは、これらの条件をうまく組み合わせて、より複雑な条件分岐を作成することが可能です。

else を使用した if 文の構文

if 文の基本構造は「もし(if)この条件が真(true)ならば、これを実行する」というものですが、else を追加することで、「もし条件が偽(false)ならば、代わりにこれを実行する」という分岐を作ることができます。

基本的な構文は以下の通り。

IF [条件] (
    [条件が真の場合に実行するコマンド]
) ELSE (
    [条件が偽の場合に実行するコマンド]
)

ここで注意が必要なのは、else の前にある閉じ括弧 )else は同じ行になければならないという点です。このルールを守らないと、スクリプトは正しく動作しません。

以下のサンプルコードでは、数値の比較を行い、条件に応じて異なるメッセージを出力します。

@ECHO OFF
SETLOCAL

SET /A num=10

IF %num% EQU 10 (
    ECHO 数値は10です。
) ELSE (
    ECHO 数値は10ではありません。
)

ENDLOCAL

rem 出力結果「数値は10です。」

↑の例では、変数 num が10と等しいかどうかをチェック。条件が真(つまり num が10の場合)ならば、「数値は10です。」と出力し、条件が偽(num が10ではない場合)ならば、「数値は10ではありません。」と出力します。

このように、else を使用することで、条件に応じて異なるアクションを取ることができます。これにより、スクリプトの柔軟性と読みやすさが向上します。また、if 文と else 文は、さらに複雑な条件分岐や繰り返し処理にも利用することができます。

if文:複数コマンドの実行

if文の条件に一致する際、1つではなく複数のコマンドを実行することも可能です。

IF [条件] ( 
    [コマンド1]
    [コマンド2]
    ...
) ELSE (
    [別のコマンド1]
    [別のコマンド2]
    ...
)

1つのコマンドだけ実行する場合と複数のコマンドを実行する場合の違いは、コマンドを括るための括弧()の有無です。例として、ファイルが存在する場合に2つの異なるメッセージを表示するバッチファイルは以下のようになります。

IF EXIST example.txt (
    ECHO example.txt exists.
    ECHO Check complete.
)

実行したいコマンドが1つの場合は、括弧は必須ではなく、明示的に括弧を使用してもエラーにはなりません。ただし、通常は括弧なしで書かれます。複数コマンドを実行したい場合にのみ()を記述すればOKです。

まとめ if コマンドの使い方

  1. 構文ルール
    • IF [条件] [コマンド]
  2. 条件の種類
    • 数値比較:等しい、等しくない、より大きい、より小さいなど。
    • 文字列比較:二つの文字列が等しいかどうかを比較。
    • ファイルの存在確認:ファイルやディレクトリが存在するかどうかを確認。
  3. else の使用
    • 条件が偽の場合に実行されるコマンドを指定。
    • IF [条件] ( [コマンド] ) ELSE ( [別のコマンド] ) という形式で利用。
  4. 応用的な使い方
    • 複数の if 文を組み合わせることで複雑な条件分岐を実現。
@ECHO OFF
SETLOCAL

REM 数値比較の例
SET /A num=10
IF %num% EQU 10 (
    ECHO 数値は10です。
) ELSE (
    ECHO 数値は10ではありません。
)

REM 文字列比較の例
SET str=Hello
IF "%str%"=="Hello" (
    ECHO 文字列はHelloです。
) ELSE (
    ECHO 文字列はHelloではありません。
)

REM ファイル存在確認の例
IF EXIST "example.txt" (
    ECHO example.txtは存在します。
) ELSE (
    ECHO example.txtは存在しません。
)

REM 複数の条件を組み合わせる例
IF %num% EQU 10 (
    IF "%str%"=="Hello" (
        ECHO 数値は10で、文字列はHelloです。
    ) ELSE (
        ECHO 数値は10ですが、文字列はHelloではありません。
    )
) ELSE (
    ECHO 数値は10ではありません。
)

REM 終了処理
ENDLOCAL

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
CommandIT-Skills
シェアする
ビズドットオンラインをフォローする
タイトルとURLをコピーしました