Windowsバッチファイル

バッチファイルの条件分岐【if文・文字列比較・数値比較・ファイル存在チェック】

Windowsバッチファイル
記事内に広告が含まれています。

バッチファイルで条件によって処理を変えるには if 文を使います。文字列・数値・ファイル存在・errorlevelの4つの比較パターンを解説します。

if文の基本構文

@echo off
:: 文字列比較
set OS=Windows
if "%OS%"=="Windows" (
    echo Windowsです
) else (
    echo Windowsではありません
)

比較パターン一覧

パターン書き方意味
文字列比較(等しい)if “%A%”==”%B%”AとBが同じ文字列
文字列比較(大文字小文字無視)if /i “%A%”==”%B%”大文字小文字を区別しない
否定if not “%A%”==”%B%”AとBが異なる
数値比較(等しい)if %N% EQU 0N が 0 と等しい
数値比較(より大きい)if %N% GTR 10N が 10 より大きい
数値比較(以下)if %N% LEQ 100N が 100 以下
ファイルが存在するif exist “ファイルパス”ファイルが存在すれば真
ファイルが存在しないif not exist “ファイルパス”ファイルがなければ真
errorlevel確認if errorlevel 1直前のコマンドが失敗した

数値比較の演算子まとめ

演算子意味
EQU等しい (Equal)
NEQ等しくない (Not Equal)
LSSより小さい (Less than)
LEQ以下 (Less or Equal)
GTRより大きい (Greater than)
GEQ以上 (Greater or Equal)

ファイル存在チェックの実践例

@echo off
set TARGET=C:ackupdata.txt

if exist "%TARGET%" (
    echo ファイルが存在します: %TARGET%
) else (
    echo ファイルが見つかりません。処理を中断します。
    pause
    exit /b 1
)

まとめ

  • 文字列比較は "%A%"=="%B%" のように必ずダブルクォートで囲む
  • 数値比較は EQU・GTR・LSS などの演算子を使う
  • if exist でファイルやフォルダの存在チェックができる
  • if /i で大文字小文字を区別しない比較になる
  • 次の記事ではループ処理(for文)を学ぶ

コメント

タイトルとURLをコピーしました