一般來說每個程式在被執行之後,都會把執行的結果暫時保存在系統變數ERRORLEVEL中。執行結果的回傳碼0通常是代表執行成功,非0則代表其他意義。
例如停用BITS服務,然後檢查執行結果:
sc stop bits
echo %ERRORLEVEL%
其它數字的則要看該程式的定義,而有不同的意思,例如故意停用一個不存在的服務:
sc stop alexc
echo %ERRORLEVEL%
執行結果:
[SC] OpenService 無法 1060:
指定的服務並不是已安裝的服務。
1060
由上面執行結果可以知道1060代表〝指定的服務並不是已安裝的服務〞。至於要怎麼知道特定回傳碼的意義,只能去看被執行的應用程式是不是有提供回傳碼的說明文件。
把之前在<a href="">〝使用自訂變數提示使用者進行輸入〞</a>提到的範例a.bat拿來改一下,多加了最後一行:
@SET /P ans=請輸入數字(1~9)
@echo 你輸入的是:%ans%
@echo 執行結果的回傳碼=%ERRORLEVEL%
不管輸入是什麼,最後執行結果的回傳碼一定都是0。