Script em lote para comparar valores

Script em lote para comparar valores
@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

Então, sempre que eu executo isso, é suposto comparar se o Parâmetro 1 é igual ao Parâmetro 2. Se verdadeiro, imprime 1, se for falso, imprime 0.

O script pareceu funcionar, comparou 1 e 3 e imprimiu 0 (o que significa que não era igual), mas quando comparou 2 e 2, imprimiu 1 E 0 em 2 linhas. É suposto imprimir apenas 1, não 1 e 0. Não consigo encontrar nenhum problema com o código. Alguém mais pode ver o problema?

informação relacionada