簡體   English   中英

在DOS批處理中使用ERRORLEVEL 0創建延遲

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM