LoginSignup
2
2

More than 1 year has passed since last update.

「if errorlevel」と「if %errorlevel%」は意味が違う。

Last updated at Posted at 2022-01-20

【書き方1】
if %errorlevel% equ 1 ; 1に等しい場合

【書き方2】
if errorlevel 1 ; 1以上の場合。
if not errorlevel 1 ; 1未満の場合

比較演算子が入る書き方1は「errorlevel」をユーザ変数と同じように扱います。

書き方2はいっそのこと「if errorlevel」構文だと思った方が分かりやすいですかね。

書き方2の何が便利かというと、
errorlevel判定のネストが必要な場合でも
setlocal enabledelayedexpansion指定しなくてもよいということでしょう。
(遅延展開は値に「!」が含まれてると誤動作するので避けたい)

【書き方1の場合】

{処理1(成功なら0、失敗は1以上の数値を返すとする)}
if %errorlevel% equ 0 (
  {処理2(成功なら0、失敗は1以上の数値を返すとする)}
  if !errorlevel! equ 0 (
    {処理3}
  )
)

【書き方2の場合】

{処理1(成功なら0、失敗は1以上の数値を返すとする)}
if not errorlevel 1 (
  {処理2(成功なら0、失敗は1以上の数値を返すとする)}
  if not errorlevel 1 (
    {処理3}
  )
)
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2