我想让批处理文件等待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 :(得分: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));