我想編寫一個批處理文件,等待0.5或0.25秒。
我已經嘗試timeout /t 0.5
,但它無法正常工作。如何使批處理文件等待幾分之一秒?
它是這樣的:
@echo off color a cls :top echo %random% timeout /t 0.5 echo %random% goto top
我想編寫一個批處理文件,等待0.5或0.25秒。
我已經嘗試timeout /t 0.5
,但它無法正常工作。如何使批處理文件等待幾分之一秒?
它是這樣的:
@echo off color a cls :top echo %random% timeout /t 0.5 echo %random% goto top
試試這個:ping 1.1.1.1 -n 1 -w 250> nul
250是毫秒的時間。
TIMEOUT
只能在全秒爲增量。
還有其他的第三方「休眠」的可執行文件,你可以下載。
或者,您可以在VBScript中使用Sleep
方法。它接受毫秒值。下面是一個簡單的例子(它保存到SLEEP.VBS
或任何你想要的名稱):
ms = WScript.Arguments(0)
WScript.Sleep ms
然後,在批處理文件中這樣稱呼它爲一個0.5秒的延時:
CSCRIPT SLEEP.VBS 500
See this question一些值得信息。總而言之,使用ping
暫停的時間限制在500ms或更長。你將無法暫停250ms。最好的解決方案是使用Windows腳本宿主 - VB腳本或JScript。
您可以用batch/JScript hybrid這樣做是爲了避免調用外部VBS腳本。用.bat擴展名保存此示例並嘗試。
@if (@CodeSection == @Batch) @then
@echo off
setlocal
for /L %%I in (10,-1,1) do (
set /P "=%%I... "<NUL
call :pause 250
)
echo Done.
goto :EOF
:pause <ms>
cscript /nologo /e:JScript "%~f0" "%~1"
goto :EOF
@end // end batch/begin JScript hybrid code
WSH.Sleep(WSH.Arguments(0));
要在這裏澄清:被ping不能回覆的地址,否則'-w'參數不適。 – Joey
用這種方式的'ping'最短暫停500ms。使用任何小於500的值仍然會導致暫停半秒。 – rojo
@rojo:很高興知道,thx! – MichaelS