2017-02-15 73 views
-1

我試圖用ERRORLEVEL寫一個批處理文件。 不幸的是,它不工作(或更好的不按我期望的方式工作)。Windows Embeded Compact 7 - 使用批處理文件 - ERRORLEVEL不可能?

它似乎是ERRORLEVEL不可用作爲環境變量。

上CMD: 如果%ERRORLEVEL%== 0回波測試

結果: 無回聲

上CMD: 如果%ERRORLEVEL%==%ERRORLEVEL%回波測試

結果: 測試

上CMD: 回波%ERRORLEVEL%

結果: %ERRORLEVEL%

閱讀關於使用SETLOCAL,但SETLOCAL不能執行

任何想法? 預先感謝您!

+0

使用舊的語法請參閱'if /?'。 「錯誤級別1」的命令意味着大於或等於1。 – LotPings

+0

我已經寫了很多批處理文件,但是從來沒有在__IF__條件下使用'%ERRORLEVEL%''。請參閱Microsoft支持文章[測試批處理文件中的特定錯誤級別](https://support.microsoft.com/zh-cn/kb/69576)。一般來說,如果出錯代碼的前一個命令/應用程序的錯誤級別1大於或等於1,或者如果不是錯誤級別1,退出代碼等於0(或更低)就足夠了,並且也可以在沒有延遲擴展的命令塊內工作。我不知道任何以負值退出的應用程序。這將違背所有操作系統的退出值準則。 – Mofi

回答

1

ERRORLEVEL需要執行過程或功能才能顯示輸入。比如說你想Ping Google,如果成功,它會打印出「Good」或打印出「Bad」,這就是ERRORLEVEL會生效的地方。如果進程或函數不存在,則不能使用ERRORLEVEL

EX。

echo off 
goto :pingtest 
cls 

:pingtest 
cls 
ping www.google.com 
if errorlevel 2 goto :good 
if errorlevel 1 echo :bad 

:good 
cls 
echo Good 
echo[ 
pause 

:bad 
cls 
echo Bad 
echo[ 
pause 

正如你可以從上面的代碼中看到,有參與的過程。

此外,如果你有機會可以看看我的博客嗎?http://pryrotech.weebly.com

+0

謝謝,因爲看起來不是所有的命令都會導致錯誤級別。我會使用「IF EXIST」來修改批處理文件,以便在文件存在的情況下重新檢查。感謝所有的支持。 – Arndt