[英]Creating delay in DOS Batch with ERRORLEVEL 0
我以前已經找到了用於模擬運行的批處理文件的方法(將行插入.bat文件):PING 1.1.1.1 -n 1 -w 2000> NUL
它可以工作並產生2秒的延遲,但由於返回錯誤級別= 1而導致了我的問題
為什么不返回errorlevel = 0?
您正在模擬ping失敗的延遲。 因此,由於ping本身失敗,因此ping
返回錯誤級別1。 如果成功執行ping 127.0.0
(例如ping 127.0.0
,則errorlevel將為0。
正如Vinzenz的回答所指出的,在任何現代Windows系統(Vista +)上,都建議使用timeout
命令。 它將為您提供可靠的錯誤級別,以檢查延遲。
C:\>timeout 2 2>&1 1>nul
C:\>echo %ERRORLEVEL%
0
C:\>timeout 2 2>&1 1>nul
(<ENTER> pressed before timeout)
C:\>echo %ERRORLEVEL%
0
C:\>timeout 2 2>&1 1>nul
^C (<CONTROL>+C pressed before timeout)
C:\>echo %ERRORLEVEL%
-1073741510
C:\>timeout /nobreak 2 2>&1 1>nul
(<CONTROL>+C pressed before timeout)
C:\>echo %ERRORLEVEL%
1
只需使用超時:
C:\>timeout 2
Waiting for 0 seconds, press a key to continue ...
C:\>echo %errorlevel%
0
編輯:至少適用於Windows 7和更高版本
C:\Users>ping -n 3 localhost >nul
C:\Users>echo %errorlevel%
0
使用ping到本地主機。 遠程主機可能無法訪問。 這將導致錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.