如果我做一個批處理腳本命名temp.bat(例如)包含:爲什麼cmd.exe在64位機器上具有不同的錯誤級別行爲?
exit /b 1
當我以不同的方式運行它,我讓我的32位XP系統上與64位不同的行爲XP系統。
在32位:
> temp.bat
> echo %ERRORLEVEL%
1
> cmd /c temp.bat
> echo %ERRORLEVEL%
0
在64位:
> temp.bat
> echo %ERRORLEVEL%
1
> cmd /c temp.bat
> echo %ERRORLEVEL%
1
我已經通過CMD.EXE選項搜查,我一直無法找到任何選項來控制如何從批處理腳本傳播錯誤級別信息。在這一點上,我無法找到任何合理的解釋這種差異。
我的猜測:保持原始行爲的32位版本是由於向後兼容性。 64位版本沒有這個要求,所以對自動化腳本的行爲更友好。 – 2009-12-17 21:04:30
啊哈!雷蒙德的女兒[http://blogs.msdn.com/oldnewthing/archive/2003/12/24/45779.aspx]對雷蒙德的伴娘[http://blogs.msdn.com/oldnewthing/archive/2009/12/02 /9931184.aspx#9931572] – 2009-12-18 07:19:25
這裏不能重現。在32位和64位上工作相同。 – Joey 2009-12-18 08:57:15