Voici un fichier .bat de Windows :
@echo off
call :label
echo %errorlevel%
pause >nul
exit
:label
exit /b 1
Fonctionne comme prévu et donne des résultats 1
.
mais en changeant le code en :
@echo off
if 1==1 (
call :label
echo %errorlevel%
)
pause >nul
exit
:label
exit /b 1
le résultat est 0
au lieu de 1
.
En if 1==1
est juste pour montrer le résultat mais je dois utiliser une autre instruction if dans le script réel. Pourquoi cela se produit-il et quelle est la solution ? Si l'expansion retardée est la solution, comment l'utiliser ?