關於bat腳本中的命令狀態碼相關的%errorlevel%變量


bat腳本中常用%errorlevel%表達上一條命令的返回值,即命令執行狀態碼、也稱命令退出碼

一般上一條命令的執行結果返回的值只有兩種,0和非0 (如常見的1,2,4,5,9009等等),0一般會被視為成功,非0為失敗或者異常

對於9009,在cmd中經常會發生輸入的命令錯誤,或者不存在的命令,這時就會返回9009這種狀態碼,

 

1、對於%errorlevel%變量,一般都是與if結合使用較多,如下:

dir qq5201351.txt
if %errorlevel% ==0 (del /q/f qq5201351.txt)

 

2、關於自己寫bat腳本時,可以通過exit命令的方式定義%errorlevel%命令退出狀態碼,如下:

echo "test var errorlevel"
exit /b 1

注:exit需要加上/b選項,/b是指定要退出當前批處理腳本而不是 CMD.EXE。如果從一個批處理腳本外執行,則會退出 CMD.EXE

注:這樣對於ext /b 1 執行后,就會退出當前批處理腳本,即使后面有內容也不會繼續執行了!

 

不過筆者在測試有些命令時,對於這個變量也會出現異常(目前原因未知)

C:\Users\5201351\Desktop>echo 123
123

C:\Users\5201351\Desktop>echo %errorlevel%
0

C:\Users\5201351\Desktop>abcdefg
'abcdefg' 不是內部或外部命令,也不是可運行的程序
或批處理文件。

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>

 

 

 

尊重別人的勞動成果 轉載請務必注明出處:https://www.cnblogs.com/5201351/p/13606941.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM