Windowsのバッチファイルを使って自動化を行う際、条件分岐を適切に設定することは非常に重要です。その際に欠かせないのがIFコマンドです。IFコマンドを使えば、ファイルの有無をチェックしたり、ユーザーの入力に応じて処理を分岐させることができます。
本記事では、バッチファイルでIFコマンドを活用する方法を基礎から応用まで詳しく解説します。初心者の方でも理解しやすいように、具体的なコード例を交えて紹介するので、ぜひ参考にしてください。
IFコマンドとは?基本の仕組みを解説
バッチファイルのIFコマンドは、「もし〇〇ならば△△を実行する」という条件分岐を行うための命令です。
基本構文
IF 条件 (処理)
または、複数の処理を実行する場合は以下のように記述します。
IF 条件 (
    処理1
    処理2
)
ELSEを使う場合
IF 条件 (
    処理1
) ELSE (
    処理2
)
例えば、ユーザーが入力した値が「yes」だった場合に特定の処理を実行するコードは以下のようになります。
@echo off
set /p answer="続行しますか? (yes/no): "
IF "%answer%"=="yes" (
    echo 処理を実行します。
) ELSE (
    echo 処理を中止しました。
)
pause
IFコマンドの種類と使用例
1. 文字列の比較
IFコマンドは文字列を比較し、それに応じて処理を分岐させることができます。
IF "%VAR1%"=="test" echo 変数VAR1はtestです。
上記の例では、環境変数VAR1の値が”test”だった場合にメッセージを表示します。
実践例:ログイン認証
@echo off
set /p username="ユーザー名を入力してください: "
IF "%username%"=="admin" (
    echo 管理者としてログインしました。
) ELSE (
    echo 一般ユーザーとしてログインしました。
)
pause
2. 数値の比較
数値の比較にはEQU, NEQ, LSS, LEQ, GTR, GEQを使います。
| 演算子 | 意味 | 
|---|---|
| EQU | 等しい | 
| NEQ | 等しくない | 
| LSS | より小さい | 
| LEQ | 以下 | 
| GTR | より大きい | 
| GEQ | 以上 | 
例: 数値の比較
@echo off
set /p number="数値を入力してください: "
IF %number% GTR 10 (
    echo 入力された数値は10より大きいです。
) ELSE (
    echo 入力された数値は10以下です。
)
pause
3. ファイルやフォルダの存在チェック
IFコマンドを使って、特定のファイルやフォルダが存在するかどうかを確認できます。
ファイルの存在確認
IF EXIST "C:\test.txt" (
    echo test.txtが存在します。
) ELSE (
    echo test.txtが見つかりません。
)
フォルダの存在確認
IF EXIST "C:\MyFolder\" (
    echo フォルダが存在します。
) ELSE (
    echo フォルダが見つかりません。
)
IFコマンドの応用例
1. ユーザーの入力に応じた処理
@echo off
set /p choice="バックアップを作成しますか? (yes/no): "
IF /I "%choice%"=="yes" (
    echo バックアップを開始します...
    REM ここにバックアップ処理を記述
) ELSE (
    echo バックアップをキャンセルしました。
)
pause
/I オプションを使うことで、大文字小文字を区別せずに比較できます。
2. 複数条件の組み合わせ
@echo off
set /p username="ユーザー名: "
set /p password="パスワード: "
IF "%username%"=="admin" IF "%password%"=="1234" (
    echo ログイン成功
) ELSE (
    echo ログイン失敗
)
pause
このように、IFを続けて書くことで、複数の条件を満たした場合のみ処理を実行できます。
3. 環境変数を使った分岐
@echo off
setlocal
set errorLevel=0
someCommand
IF %errorLevel% NEQ 0 (
    echo コマンドが失敗しました。
    exit /b %errorLevel%
) ELSE (
    echo コマンドが成功しました。
)
endlocal
ERRORLEVELを使って、コマンドの成功・失敗を判定することができます。
まとめ
IFコマンドを使うことで、バッチファイルに条件分岐を組み込むことができ、より高度な処理が可能になります。
本記事では、IFコマンドの基本から応用までを解説しました。主なポイントを振り返ると、
- 基本のIF文の使い方
- 文字列や数値の比較
- ファイルやフォルダの存在チェック
- ユーザーの入力を元に処理を分岐
- 環境変数や複数条件を組み合わせた応用
これらを活用することで、バッチファイルの自動化をより効率的に行うことができます。ぜひ実際に試して、業務の効率化に役立ててください!

