ERRORLEVEL lotes resulta diferente de CMD?
-
30-09-2019 - |
Pregunta
¿Por qué se comportan de manera diferente en ERRORLEVEL estas dos circunstancias?
Desde la línea de comandos:
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\>aescrypt.exe -v 2> NUL
C:\>echo %errorlevel%
9009
Versus de archivo por lotes:
@echo off
set /P C="> "?
set or=
if "%C%"=="a" set or=1
if "%C%"=="A" set or=1
if defined or (
aescrypt.exe -v 2> NUL
echo %errorlevel%
)
Resultados:
> a
1
Solución
Eliminar que "@echo off" y ver cómo se ejecuta el código. Puede encontrarse con que el nivel de error en el ejemplo 2 es el resultado del "si se ha definido".
Además, intente lo siguiente:
@echo off
set /P C="> "?
set or=
if /i "%C%"=="a" set or=1
if not defined or goto SKIP
aescrypt.exe -v 2> NUL
echo %errorlevel%
:SKIP
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow