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

Ceg*_*ach 60 windows windows-7 sleep batch

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

任何人都知道如何将这些命令放回原处,或者使用不同的方法来获得相同的结果?

小智 133

您可以使用以下timeout命令:

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

例如,等待 10 秒:

TIMEOUT /T 10
Run Code Online (Sandbox Code Playgroud)

更多细节:

TIMEOUT /?
Run Code Online (Sandbox Code Playgroud)

  • @Dany:因为这个话题是从 2009 年开始的,当时大多数安装都是 XP。在 Vista 之前,Timeout 仅在服务器版本和资源工具包中,而不是在正常的 XP 安装中。如今,确实,正确的答案是超时。 (7认同)
  • @DanyKhalife 除非您想在后台运行该进程。“错误:不支持输入重定向,立即退出进程。” (6认同)

Joh*_*n T 31

您可以下载许多睡眠实用程序并将其放入 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
Run Code Online (Sandbox Code Playgroud)

然后从批处理文件中的某个位置,您可以像这样调用它:

CALL :sleep 1
Run Code Online (Sandbox Code Playgroud)


小智 9

timeout /t <seconds> /nobreak > NUL
Run Code Online (Sandbox Code Playgroud)


Fow*_*owl 6

还有

waitfor SomethingThatIsNeverHappening /t 10
Run Code Online (Sandbox Code Playgroud)

这将等待 1 到 99999 秒之间。