値を比較するバッチスクリプト

値を比較するバッチスクリプト
@echo off
rem  Checks if %~1 is equal to %~2 and returns 1 if true, 0 if false.
rem  DEVS! DO NOT EDIT THIS FILE!
if "%~1"=="" goto error
if "%~2"=="" goto error
if "%~1"=="%~2" goto true
if "%~1" neq "%~2" goto false

:error
setlocal
echo error occured
endlocal

:true
setlocal
echo 1
endlocal

:false
setlocal
echo 0
endlocal

したがって、これを実行するたびに、パラメーター 1 がパラメーター 2 と等しいかどうかを比較することになります。true の場合は 1 が出力され、false の場合は 0 が出力されます。

スクリプトは動作しているようで、1 と 3 を比較して 0 を出力しました (つまり、等しくない)。しかし、2 と 2 を比較すると、2 行に 1 AND 0 が出力されました。1 と 0 ではなく、1 のみが出力されるはずです。コードに問題は見つかりませんが、他に問題に気付いた人はいますか?

関連情報