如何睡在一个batch file?

如何在命令和下一个命令之间的Windowsbatch file中暂停执行一段时间?

在batch file中睡眠的正确方法是使用Windows 2000中引入的timeout命令。

要在29到30秒之间等待:

 timeout /t 30 

如果用户点击任何键,超时将被中断。 但是,该命令还接受可选开关/nobreak ,除了明确的CTRL-C之外,它可以有效地忽略用户可能按下的任何内容:

 timeout /t 30 /nobreak 

此外,如果您不希望命令在屏幕上打印倒数,您可以将其输出redirect到NUL

 timeout /t 30 /nobreak > NUL 

既然它也适用于这里,我会复制我的答案从另一个网站 。

如果你想使用ping,有一个更好的方法。 你会想ping一个不存在的地址,所以你可以指定一个毫秒级的超时精度。 幸运的是,这样的地址是在一个标准(RFC 3330)中定义的,它是192.0.2.x 这不是化妆,它确实是一个地址的唯一目的不存在(可能不清楚,但它适用于本地networking):

192.0.2.0/24 – 该块被指定为“TEST-NET”,用于文档和示例代码。 它通常与供应商和协议文档中的域名example.com或example.net一起使用。 此块内的地址不应出现在公共Internet上。

睡123毫秒,使用ping 192.0.2.1 -n 1 -w 123 >nul

您也可以将ping插入到本地主机。 这将需要4秒钟完成(默认)。 有些人认为这是一种杂食,但都很好。

命令:
ping 127.0.0.1