Se faccio un temp.bat script batch di nome (per esempio) che contiene:Perché cmd.exe ha un comportamento di errorlevel diverso su un computer a 64 bit?
exit /b 1
Quando eseguo in vari modi, ottengo un comportamento diverso sul mio sistema a 32-bit di XP rispetto a un 64-bit Sistema XP.
su 32-bit:
> temp.bat
> echo %ERRORLEVEL%
1
> cmd /c temp.bat
> echo %ERRORLEVEL%
0
a 64 bit:
> temp.bat
> echo %ERRORLEVEL%
1
> cmd /c temp.bat
> echo %ERRORLEVEL%
1
Ho cercato attraverso le opzioni di cmd.exe e sono stato in grado di trovare tutte le opzioni di controllo come diffonde informazioni sugli errori da script batch. A questo punto non sono in grado di trovare alcuna spiegazione razionale per questa differenza.
La mia ipotesi: la versione a 32 bit che mantiene il comportamento originale è dovuta alla retrocompatibilità. La versione a 64 bit non ha quel requisito, quindi ha un comportamento più amichevole per gli script automatizzati. –
Aha! La figlia di Raymond [http://blogs.msdn.com/oldnewthing/archive/2003/12/24/45779.aspx] contro la damigella d'onore di Raymond [http://blogs.msdn.com/oldnewthing/archive/2009/12/02 /9931184.aspx#9931572] –
Impossibile riprodurre qui. Funziona allo stesso modo su entrambi i 32 e 64 bit. – Joey