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

mag*_*167 5 cmd batch-file 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

Mic*_*elS 5

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

编辑:

正如rojo在评论中发布的那样,它在250毫秒内无法正常工作:

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

  • 以这种方式使用的“ ping”至少会暂停500毫秒。使用任何小于500的值仍会导致半秒的暂停。 (2认同)
  • 请使用192.0.2.0。这是一个测试 IP 范围。https://en.wikipedia.org/wiki/Reserved_IP_addresses,如果 1.1.1.1 存在(现在是 cloudflare 拥有的 dns ip),此方法将失败 (2认同)

aph*_*ria 5

TIMEOUT 仅以整秒为单位工作。

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

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

ms = WScript.Arguments(0)
WScript.Sleep ms
Run Code Online (Sandbox Code Playgroud)

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

CSCRIPT SLEEP.VBS 500
Run Code Online (Sandbox Code Playgroud)


roj*_*ojo 5

请参阅此问题以获取一些有价值的信息。总而言之,使用ping暂停时间限制为 500 毫秒或更长。您将无法暂停 250 毫秒。最好的解决方案是使用 Windows Scripting Host——VB Script 或 JScript。

您可以使用批处理/JScript 混合来执行此操作,以避免调用外部 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));
Run Code Online (Sandbox Code Playgroud)