la commande ERRORLEVEL de if est différente de la variable %ERRORLEVEL% .
Intuitivement l'on utilise la commande "IF ERRORLEVEL <n>", avec un espace entre ERRORLEVEL et le numero d'erreur, comme étant un égal, mais c'est faux.
if ERRORLEVEL 0 ( echo code retour 0 )
C'est l’opérateur supérieur ou egal >= qui est implicitement utilisé.
Avec not ERRORLEVEL, c'est l’opérateur inferieur < qui est implicitement utilisé.
https://ss64.com/nt/errorlevel.html
https://windows.developpez.com/cours/ligne-commande/?page=page_25