Si hago un temp.bat archivo por lotes llamado (por ejemplo) que contiene:¿Por qué cmd.exe tiene un comportamiento de nivel de error diferente en una máquina de 64 bits?
exit /b 1
Cuando corro de varias maneras, me sale un comportamiento diferente en mi sistema XP de 32 bits vs 64 bits Sistema XP
en 32 bits:
> temp.bat
> echo %ERRORLEVEL%
1
> cmd /c temp.bat
> echo %ERRORLEVEL%
0
en 64 bits:
> temp.bat
> echo %ERRORLEVEL%
1
> cmd /c temp.bat
> echo %ERRORLEVEL%
1
he buscado a través de las opciones de cmd.exe y no he podido encontrar ninguna opción de controlar la forma en que propaga información de nivel de error de scripts por lotes. En este punto, no puedo encontrar ninguna explicación racional para esta diferencia.
Supongo: la versión de 32 bits que mantiene el comportamiento original se debe a la compatibilidad con versiones anteriores. La versión de 64 bits no tiene ese requisito, por lo que tiene un comportamiento más amigable con las secuencias de comandos automatizadas. –
Aha! La hija de Raymond [http://blogs.msdn.com/oldnewthing/archive/2003/12/24/45779.aspx] vs la dama de honor de Raymond [http://blogs.msdn.com/oldnewthing/archive/2009/12/02 /9931184.aspx#9931572] –
No se puede reproducir aquí. Funciona igual en 32 y 64 bit. – Joey