如何使批处理文件等待/休眠几秒钟?


57

我使用批处理文件来启动一些需要在后台运行的程序。到现在为止,在其他一些启动完成后,我仍使用了pause命令来执行它。我更喜欢使用wait或sleep命令,但它们似乎未包含在Windows 7中。

有人知道如何放回这些命令,或者知道实现相同结果的其他方法吗?


1
:或者你可以使用PowerShell stackoverflow.com/questions/1741490/...
Berzemus

希望MS从2017年起默认在system32文件夹或程序文件/任何标准位置提供sleep.exe。简单的c exe 40k左右!
tgkprog 2015年

像这样一个sleepcmd.com
tgkprog 2015年

Answers:


30

有许多睡眠实用程序可以下载并拖放到您的System32文件夹,一个具备Windows Server 2003的资源工具包sleep.exe

您还可以使用ping技巧:

:sleep
ping 127.0.0.1 -n 2 -w 1000 > NUL
ping 127.0.0.1 -n %1 -w 1000 > NUL

然后可以从批处理文件中的某个位置调用它,如下所示:

CALL :sleep 1

1
可以将ping技巧用作临时解决方案,但我宁愿选择一个只是暂时中止该过程的方法,而不是让它暂时忙于工作。另外,您所链接的列表中的哪一项是我想要的?
Cegorach

您需要sleep.exe
John T

我尝试从测试批处理文件调用CALL:sleep 1,它响应“系统找不到指定的批处理标签
-SLEEP

因为您需要添加我上面发布的子例程。Call仅调用子例程,这是我在call命令上方发布的3行。
约翰T

126

您可以使用以下timeout命令:

该实用程序接受超时参数以等待指定的时间段(以秒为单位)或直到按下任何键。它还接受一个参数来忽略按键。

例如,要等待10秒:

TIMEOUT /T 10

更多细节:

TIMEOUT /?

1
为什么不选择这个作为正确答案?如果您问我,当前的
文档就很难

7
@Dany:因为主题来自2009年,当时大多数安装是XP。在Vista之前,Timeout仅存在于服务器版本和Resource Kit中,而在普通的XP安装中则没有。确实,如今,正确的答案是超时。
mivk 2012年

6
@DanyKhalife除非您想在后台运行该进程。“错误:不支持输入重定向,立即退出该过程。”
安南


6

也有

waitfor SomethingThatIsNeverHappening /t 10

它将等待1到99999秒之间。



-1

如果您已安装Python(并将安装路径添加到您的环境变量中),则可以让Python执行以下操作:

echo from time import sleep; sleep(3) | python

(但是,如果您使用的是Windows Vista或更高版本,则timeout自然是要走的路。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.