コマンドプロンプトのif errorlevelの落とし穴
直前に実行したコマンドの戻り値がerrorlevelに設定されるので、この値を使って分岐することはよくあると思います。
ここで、「errorlevelが1なら"errorlevelは1です"を表示する」という処理をしようとして
if errorlevel 1 echo errorlevelは1です |
とするのは間違いです。なぜかというと、「if errorlevel 数値 コマンド」というのは、errorlevelの値が数値以上の場合にコマンドを実行するからです。この場合、errorlevelが10でも100でも「errorlevelは1です」が表示されてしまいます。
正しく処理するには以下のようにします。
if %errorlevel% == 1 echo errorlevelは1です |
ちなみに、==のかわりにEQUを使えます。