2012-09-17 71 views

回答

0

在Windows XP中這不起作用, 因爲SET命令本身會設置錯誤級別(通常爲1)! 因爲QQQ的值沒有被定義 但在視窗7發生的事情是SET值設置QQQ具有空,因此不限定的 ERRORLEVEL = 0 例如在Windows 7

set "QQQ" 
echo %ERRORLEVEL% 
pause 

環境變量QQQ// ERRORLEVEL = 1 和 例如在Windows 7

set "QQQ=" :: sets QQQ as null 
echo %ERRORLEVEL% 
pause 

環境變量QQQ未定義// ERRORLEVEL = 0

+0

但是爲什麼在Win 7中set命令的行爲改變了? –

+0

對不起,不知道爲什麼:)他們作爲;未分配的值設置爲空值 – cc4re

+0

@ cc4re我看不到空值和未定義變量之間的任何差異 – jeb

1

XP似乎在這裏更有意義,因爲它將errorlevel設置爲1,但前提是QQQ是未定義的變量。

WIN7有兩種不同的方法!
set不改變ERRORLEVEL,如果代碼是.BAT文件
set始終將錯誤級別爲0中,如果代碼是.CMD文件

爲什麼裏面?
沒有人知道。你可以問微軟,但我想這只是一個意想不到的行爲。

+0

在我的Win7 set命令不會將cmd或bat文件中的ERRORLEVEL更改爲1。 –

+0

@Vladimir Bezugliy正如我所說的,在Win7上,errorlevel根本沒有改變(在批處理文件中),或者它總是設置爲0(在cmd文件中),但Win7從未將其設置爲1 – jeb

相關問題