濮阳杆衣贸易有限公司

主頁 > 知識庫 > bat中errorlevel與%errorlevel%的區(qū)別

bat中errorlevel與%errorlevel%的區(qū)別

熱門標簽:玉林市機器人外呼系統(tǒng)哪家好 雷霆電銷機器人怎么樣 呼倫貝爾外呼系統(tǒng) 清遠百度地圖標注店鋪位置 智能打電話機器人收費 電話機器人產(chǎn)品怎么樣 如何弄地圖標注 電話機器人全國招商 如何申請400電話業(yè)務(wù)mm

簡要說明

他們都是判斷上個命令的返回值。
當(dāng)使用if errorlevel 值 cmmand 句式時,它的含義是:如果返回的錯誤碼值大于或等于值 的時候,將執(zhí)行cmmand

操作;

當(dāng)使用if %errorlevel%==值 cmmand 句式時,它含義是:如果返回的錯誤碼值等于值 的時候,將執(zhí)行cmmand操作。

一般上一條命令的執(zhí)行結(jié)果返回的值只有兩個,"成功"用0 表示 "失敗"用 1 表示,實際上,errorlevel 返回值可
以在0~255 之間,

例如xcopy 默認的errorlevel 值就有5 個,分別表示5 種執(zhí)行狀態(tài):

0復(fù)制文件成功
1 未找到復(fù)制文件
2 用戶通過CTRL C 終止了xcopy操作
4 出現(xiàn)了初始化錯誤 
5 出現(xiàn)了磁盤寫入錯誤

if %ERRORLEVEL%對數(shù)值的比較方法不僅僅限于等于,可以使用參數(shù)來控制。

比如:IF %ERRORLEVEL% LEQ 1 goto okay

全部的比較參數(shù)如下:
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于

下面是一些補充說明

一,if errorlevel

測試前一程序的返回狀態(tài),如果該程序的返回狀態(tài)大與或等于所說明的值就執(zhí)行所說明的DOS命令
if errorlevel 命令讓批處理文件測試一程序的返回狀態(tài)值,然后根據(jù)測試結(jié)果作相應(yīng)的進一步處理,當(dāng)
MS-DOS遇到一條 IF errorlevel 命令時 ,它就將前一條MS-DOS命令的返回狀態(tài)值與在IF命令中所說的值想比較,如果該程序的返回狀態(tài) 大于或等于 IF命令所說明的值MS-DOS就執(zhí)行相應(yīng)的命令,如果返回狀態(tài)值 小于 所說明的值,MS-DOS就從批處理文件中的下一條命令繼續(xù)執(zhí)行,如果用的是IF NOT ERRORLEVEL命令,就正好相反

例子:
下面批處理文件執(zhí)行FORMATION命令,并顯示基于 FORMAT的返回值的完整狀態(tài)信息:

@echo off
format a:
if errorlevel 5 goto no_response
if errorlevel 4 goto error
if errorlevel 3 goto user_ctrlc
echo successful format operation
goto done
no_response
echo fixed disk will not be formatted
goto done
:error
echo error in processing.format incopplete
goto done
:user_ctrlc
echo format incomplete to ctrl_c
:done

批處理文件首先測試最大的返回狀態(tài)值。記住,如果返回狀態(tài)值大于 或等于有IF命令所說明的值,MS-DOS就執(zhí)行所說明的命令;如果該批處理文件首先測試返回狀態(tài)值是否為3,那么MS-DOS會始終執(zhí)行" goto user ctrlc",而不論返回狀態(tài)值是3或4,或還是5。這是因為這些返回狀態(tài)值都是大于或等于3的通過將測試次序倒過來,該批處理文件就能對各返回狀態(tài)值分別執(zhí)行正確的那組命令
通過組合IF ERRORLEVEL和IF not ERRORLEVEL,可以測試一特定的返回狀態(tài)值。例如,可以用下列命令測試返回狀態(tài)值是否為3:

if errorlevel 3 if not errorlevel 4 goto user_ctrlc

注意:這時最好用 if %errorlevel%==3 goto user_ctrlc

二,IF NOT ERRORLEVEL

測試前一程序的返回狀態(tài),如果該程序的返回狀態(tài)小于所說明的值就執(zhí)行所說明的DOS命令
將not算符用于 IF ERRORLEVEL命令,批處理文件就能測試一返回值是否小于一具體值,如果是,MS-DOS就執(zhí)行所說明的命令:否側(cè),它就從批處理文件中的 下一條命令處繼續(xù)執(zhí)行,IF not errorlevel 命令的 格式如下:
if not errorlevel 值 DOS命令

三, 對特定 ERRORLEVEL 值進行測試

當(dāng)一個批處理文件變的 較為復(fù)雜時,可能會需要將一條 IF ERRORLEVEL命令與一條 IF NOT ERRORLEVEL m命令后側(cè)枝從 0 至4的返回狀態(tài)值

@echo off
diskcopy a: b:
if errorlevel 0 if not errorlevel 1 echo exit 0
if errorlevel 1 if not errorlevel 2 echo exit 1
if errorlevel 2 if not errorlevel 3 echo exit 2
if errorlevel 3 if not errorlevel 4 echo exit 3
if errorlevel 4 if not errorlevel 5 echo exit 4

在第一條IF命令中。第一個測試(if errorlevel 0)保證返回狀態(tài)值至少為0:第二個測試(IF NOT ERRORLEVEL 1)保證返回狀態(tài)值小于1.將這兩個測試組合起來。該命令就保證返回狀態(tài)值為0,類試的,第二條IF命令返回狀態(tài)值為1,等等。

注意:當(dāng)需要 對特定 ERRORLEVEL 值進行測試時,最好用if %errorlevel%==值 cmmand的形式。

您可能感興趣的文章:
  • cmd if條件 條件判斷
  • dos if 條件判斷
  • bat批處理 if 命令示例詳解
  • bat If 命令常用判斷介紹
  • dos中一些常用命令的errorlevel返回值
  • IF-ERRORLEVEL使用方法

標簽:公主嶺 三門峽 樂山 臺州 株洲 蕪湖 白銀 江西

巨人網(wǎng)絡(luò)通訊聲明:本文標題《bat中errorlevel與%errorlevel%的區(qū)別》,本文關(guān)鍵詞  bat,中,errorlevel,與,%errorlevel%,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《bat中errorlevel與%errorlevel%的區(qū)別》相關(guān)的同類信息!
  • 本頁收集關(guān)于bat中errorlevel與%errorlevel%的區(qū)別的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    鲁山县| 遂昌县| 刚察县| 彭水| 杭锦后旗| 永定县| 栾城县| 太白县| 封开县| 长岭县| 江城| 道孚县| 梅河口市| 普定县| 穆棱市| 林芝县| 兴国县| 靖边县| 昌平区| 平阳县| 龙州县| 屏山县| 阳山县| 黑水县| 那坡县| 渭源县| 英吉沙县| 科技| 延长县| 台北市| 镇巴县| 都江堰市| 封开县| 淮北市| 望江县| 聂拉木县| 旌德县| 芒康县| 凌源市| 兰溪市| 渑池县|