批处理脚本 - 在exec程序之前等待5秒

时间:2017-01-26 13:01:38

标签: batch-file sleep

我有以下脚本,但在执行软件之前它没有睡眠。

有什么想法吗?

@echo off
SLEEP 10
START "" "C:\Program Files (x86)\..." 

2 个答案:

答案 0 :(得分:4)

有(至少)以下选项,正如其他人已经说过的那样:

  1. 使用timeout command

    rem // Allow a key-press to abort the wait; `/T` can be omitted:
    timeout /T 5
    timeout 5
    rem // Do not allow a key-press to abort the wait:
    timeout /T 5 /NOBREAK
    rem // Suppress the message `Waiting for ? seconds, press a key to continue ...`:
    timeout /T 5 /NOBREAK > nul
    

    注意事项:

    • timeout实际上计算第二个倍数,因此等待时间实际上是4到5秒。对于短暂的等待时间,这尤其令人烦恼和烦恼。
    • 您不能在输入为redirected的代码块中使用timeout,因为它会立即中止,抛出错误消息ERROR: Input redirection is not supported, exiting the process immediately.。因此timeout /T 5 < nul失败。
  2. 使用ping command

    rem /* The IP address 127.0.0.1 (home) always exists;
    rem    the standard ping interval is 1 second; so you need to do
    rem    one more ping attempt than you want intervals to elapse: */
    ping 127.0.0.1 -n 6 > nul
    

    这是保证最短等待时间的唯一可靠方法。重定向没问题。

答案 1 :(得分:0)

尝试timeout命令。

超时/ t 10

显示Waiting for 10 seconds, press a key to continue ...

您可以使用忽略用户输入的/nobreak开关(CTRL-C除外)

timeout /t 30 /nobreak

或者您可以将其输出重定向到NUL,等待10秒的空白屏幕并忽略用户输入:

timeout /t 30 /nobreak > NUL