如何使批处理文件等待几分之一秒?

时间:2015-06-05 11:12:01

标签: batch-file cmd batch-processing

我想让批处理文件等待0.5或0.25秒 我已经尝试timeout /t 0.5,但它无效。

类似于:
@echo off color a cls :top echo %random% timeout /t 0.5 echo %random% goto top

3 个答案:

答案 0 :(得分:3)

试试这个:ping 127.0.0.1 -n 1 -w 500> nul 500是以毫秒为单位的时间。

编辑:

正如rojo在评论中发表的那样,这项工作不会像预期的那样工作250毫秒:

  这种方式使用ping暂停至少500ms。使用低于500的任何值仍然会导致半秒暂停

答案 1 :(得分:3)

TIMEOUT仅适用于整秒的增量。

您可以下载其他第三方“睡眠”可执行文件。

或者,您可以在VBScript中使用Sleep方法。它接受的值为毫秒。这是一个简单的示例(将其保存为SLEEP.VBS或您想要的任何名称):

ms = WScript.Arguments(0)
WScript.Sleep ms

然后,在批处理文件中调用它,延迟0.5秒:

CSCRIPT SLEEP.VBS 500

答案 2 :(得分:1)

See this question获取一些有价值的信息。总而言之,使用ping暂停的时间限制为500毫秒或更长。您将无法暂停250毫秒。最好的解决方案是使用Windows Scripting Host - VB Script或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));