Categories: OS

Windowsのバッチファイルで条件分岐!IFコマンドの使い方と活用例

Windowsのバッチファイルを使って自動化を行う際、条件分岐を適切に設定することは非常に重要です。その際に欠かせないのがIFコマンドです。IFコマンドを使えば、ファイルの有無をチェックしたり、ユーザーの入力に応じて処理を分岐させることができます。

本記事では、バッチファイルでIFコマンドを活用する方法を基礎から応用まで詳しく解説します。初心者の方でも理解しやすいように、具体的なコード例を交えて紹介するので、ぜひ参考にしてください。


IFコマンドとは?基本の仕組みを解説

バッチファイルのIFコマンドは、「もし〇〇ならば△△を実行する」という条件分岐を行うための命令です。

基本構文

batchコピーする編集するIF 条件 (処理)

または、複数の処理を実行する場合は以下のように記述します。

batchコピーする編集するIF 条件 (
    処理1
    処理2
)

ELSEを使う場合

batchコピーする編集するIF 条件 (
    処理1
) ELSE (
    処理2
)

例えば、ユーザーが入力した値が「yes」だった場合に特定の処理を実行するコードは以下のようになります。

batchコピーする編集する@echo off
set /p answer="続行しますか? (yes/no): "
IF "%answer%"=="yes" (
    echo 処理を実行します。
) ELSE (
    echo 処理を中止しました。
)
pause

IFコマンドの種類と使用例

1. 文字列の比較

IFコマンドは文字列を比較し、それに応じて処理を分岐させることができます。

batchコピーする編集するIF "%VAR1%"=="test" echo 変数VAR1はtestです。

上記の例では、環境変数VAR1の値が”test”だった場合にメッセージを表示します。

実践例:ログイン認証

batchコピーする編集する@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以上

例: 数値の比較

batchコピーする編集する@echo off
set /p number="数値を入力してください: "
IF %number% GTR 10 (
    echo 入力された数値は10より大きいです。
) ELSE (
    echo 入力された数値は10以下です。
)
pause

3. ファイルやフォルダの存在チェック

IFコマンドを使って、特定のファイルやフォルダが存在するかどうかを確認できます。

ファイルの存在確認

batchコピーする編集するIF EXIST "C:\test.txt" (
    echo test.txtが存在します。
) ELSE (
    echo test.txtが見つかりません。
)

フォルダの存在確認

batchコピーする編集するIF EXIST "C:\MyFolder\" (
    echo フォルダが存在します。
) ELSE (
    echo フォルダが見つかりません。
)

IFコマンドの応用例

1. ユーザーの入力に応じた処理

batchコピーする編集する@echo off
set /p choice="バックアップを作成しますか? (yes/no): "
IF /I "%choice%"=="yes" (
    echo バックアップを開始します...
    REM ここにバックアップ処理を記述
) ELSE (
    echo バックアップをキャンセルしました。
)
pause

/I オプションを使うことで、大文字小文字を区別せずに比較できます。


2. 複数条件の組み合わせ

batchコピーする編集する@echo off
set /p username="ユーザー名: "
set /p password="パスワード: "

IF "%username%"=="admin" IF "%password%"=="1234" (
    echo ログイン成功
) ELSE (
    echo ログイン失敗
)
pause

このように、IFを続けて書くことで、複数の条件を満たした場合のみ処理を実行できます。


3. 環境変数を使った分岐

batchコピーする編集する@echo off
setlocal
set errorLevel=0

someCommand
IF %errorLevel% NEQ 0 (
    echo コマンドが失敗しました。
    exit /b %errorLevel%
) ELSE (
    echo コマンドが成功しました。
)
endlocal

ERRORLEVELを使って、コマンドの成功・失敗を判定することができます。


まとめ

IFコマンドを使うことで、バッチファイルに条件分岐を組み込むことができ、より高度な処理が可能になります。
本記事では、IFコマンドの基本から応用までを解説しました。主なポイントを振り返ると、

  • 基本のIF文の使い方
  • 文字列や数値の比較
  • ファイルやフォルダの存在チェック
  • ユーザーの入力を元に処理を分岐
  • 環境変数や複数条件を組み合わせた応用

これらを活用することで、バッチファイルの自動化をより効率的に行うことができます。ぜひ実際に試して、業務の効率化に役立ててください!

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。