我想编写一个批处理文件,等待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