批次檔 ERRORLEVELs 的正確測試的優先順序

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:39585
本文已封存。本文係以「現狀」提供且不會再更新。
結論
當您在批次檔中使用多個 IF ERRORLEVEL 陳述式時,在其中 [ERRORLEVELs 會測試以數字順序是很重要的。遞減排列成正確的順序 (最高到最低)。此順序是從測試 ERRORLEVELs 的方式。當 [ERRORLEVEL 等於,或大於 ERRORLEVEL 號碼 IF 條件設為 TRUE。
其他相關資訊
下列的批次檔片段會示範這個不正確的行為:
   rem (execute a program which returns an errorlevel of 0 or 1)   if errorlevel 0 goto ZERO   if errorlevel 1 goto ONE   goto END   :ZERO     echo a Zero was returned!     goto END   :ONE     echo a One was returned!   :END				
上面的範例永遠分支至 「 零 」 標籤,不論成功或失敗。本範例會正常運作如果 ERRORLEVEL 測試以遞減順序進行。

寫入批次檔正確的方法是,如下所示:
   rem (execute a program which returns an errorlevel of 0 or 1)   if errorlevel 1 goto ONE   if errorlevel 0 goto ZERO   goto END   :ZERO     echo a Zero was returned!     goto END   :ONE     echo a One was returned!   :END				
6.22 2.x 3.x 4.00 4.01 5.00 5.00a 6.00 6.20 \ * yeswin4

警告:本文為自動翻譯

內容

文章識別碼:39585 - 最後檢閱時間:12/04/2015 09:03:15 - 修訂: 2.0

Microsoft MS-DOS 2.11 Standard Edition, Microsoft MS-DOS 3.1, Microsoft MS-DOS 3.2 Standard Edition, Microsoft MS-DOS 3.21 Standard Edition, Microsoft MS-DOS 3.3 Standard Edition, Microsoft MS-DOS 3.3a, Microsoft MS-DOS 4.0 Standard Edition, Microsoft MS-DOS 4.01 Standard Edition, Microsoft MS-DOS 5.0 Standard Edition, Microsoft MS-DOS 5.0a, Microsoft MS-DOS 6.0 Standard Edition, Microsoft MS-DOS 6.2 Standard Edition, Microsoft MS-DOS 6.21 Standard Edition, Microsoft MS-DOS 6.22 Standard Edition

  • kbnosurvey kbarchive kbmt KB39585 KbMtzh
意見反應