關(guān)于bat腳本中的命令狀態(tài)碼相關(guān)的%errorlevel%變量問題
bat腳本中常用%errorlevel%表達(dá)上一條命令的返回值,即命令執(zhí)行狀態(tài)碼、也稱命令退出碼
一般上一條命令的執(zhí)行結(jié)果返回的值只有兩種,0和非0 (如常見的1,2,4,5,9009等等),0一般會被視為成功,非0為失敗或者異常
對于9009,在cmd中經(jīng)常會發(fā)生輸入的命令錯誤,或者不存在的命令,這時就會返回9009這種狀態(tài)碼,
1、對于%errorlevel%變量,一般都是與if結(jié)合使用較多,如下:
dir qq5201351.txt if %errorlevel% ==0 (del /q/f qq5201351.txt)
2、關(guān)于自己寫bat腳本時,可以通過exit命令的方式定義%errorlevel%命令退出狀態(tài)碼,如下:
echo "test var errorlevel" exit /b 1
注:exit需要加上/b選項,/b是指定要退出當(dāng)前批處理腳本而不是 CMD.EXE。如果從一個批處理腳本外執(zhí)行,則會退出 CMD.EXE
注:這樣對于ext /b 1 執(zhí)行后,就會退出當(dāng)前批處理腳本,即使后面有內(nèi)容也不會繼續(xù)執(zhí)行了!
不過筆者在測試有些命令時,對于這個變量也會出現(xiàn)異常(目前原因未知)
C:\Users\5201351\Desktop>echo 123
123
C:\Users\5201351\Desktop>echo %errorlevel%
0
C:\Users\5201351\Desktop>abcdefg
'abcdefg' 不是內(nèi)部或外部命令,也不是可運行的程序
或批處理文件。
C:\Users\5201351\Desktop>echo %errorlevel%
9009
C:\Users\5201351\Desktop>echo 123456
123456
C:\Users\5201351\Desktop>echo %errorlevel%
9009
C:\Users\5201351\Desktop>
以下是補充
errorlevel和%errorlevel%都是判斷上個命令的返回值。
if errorlevel 值 cmmand 句式,含義是:如果返回的錯誤碼值大于或等于值 的時候,將執(zhí)行cmmand操作;
if %errorlevel%==值 cmmand 句式,含義是:如果返回的錯誤碼值等于值 的時候,將執(zhí)行cmmand操作。
一般來說一條命令的執(zhí)行結(jié)果返回的值只有兩個,"成功"用0 表示 "失敗"用 1 表示,但實際上errorlevel 返回值可以在0~255 之間,
例如xcopy 默認(rèn)的errorlevel 值就有5 個,分別表示5 種執(zhí)行狀態(tài):
0復(fù)制文件成功
1 未找到復(fù)制文件
2 用戶通過CTRL C 終止了xcopy操作
4 出現(xiàn)了初始化錯誤
5 出現(xiàn)了磁盤寫入錯誤
if %ERRORLEVEL%對數(shù)值的比較方法不僅僅限于等于,可以使用參數(shù)來控制。也能達(dá)到上一種句式的效果
比如:IF %ERRORLEVEL% LEQ 1 goto okay
全部的比較參數(shù)如下:
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于
腳本之家小編再給大家一個實例
dir d:\ | find "jb51\net" if %errorlevel%==0 goto ok if %errorlevel%==1 goto end :ok rd d:\jb51\net :end md d:\jb51\net
判斷d盤有沒有jb51\net目錄,沒有就創(chuàng)建,有就刪除文件夾中的內(nèi)容,但是無法使用的,具體的可以參考這篇文章
http://www.dbjr.com.cn/article/267378.htm
到此這篇關(guān)于關(guān)于bat腳本中的命令狀態(tài)碼相關(guān)的%errorlevel%變量的文章就介紹到這了,更多相關(guān)bat腳本%errorlevel%變量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
windows批處理bat腳本獲取并且處理當(dāng)前日期與時間信息
最近同步一些數(shù)據(jù)需要獲取當(dāng)前的日期然后,通過分隔符等格式化成需要的日期,那么就需要了解一下他的核心原理那么就可以得到我們想到的結(jié)果了2024-05-05Compact 顯示和更改 NTFS 分區(qū)上的文件或目錄壓縮
Compact 顯示和更改 NTFS 分區(qū)上的文件或目錄壓縮...2007-09-09