批处理脚本 - 在执行程序之前等待 5 秒 [重复]

Posted

技术标签:

【中文标题】批处理脚本 - 在执行程序之前等待 5 秒 [重复]【英文标题】:Batch Script - Wait 5 seconds before exec program [duplicate] 【发布时间】:2017-06-11 22:59:57 【问题描述】:

我有以下脚本,但在执行软件之前它不会休眠。

有什么想法吗?

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

【问题讨论】:

【参考方案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 失败。

    要使用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
    

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

【讨论】:

在 powershell nul 中不起作用 - 请改用 $null。例如。 ping 127.0.0.1 -n 6 > $null【参考方案2】:

试试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 

【讨论】:

以上是关于批处理脚本 - 在执行程序之前等待 5 秒 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

执行脚本sh install.sh后:需要输入1等待5秒并回车,等待10秒输入y并回车 ,如何用脚本完成这两个操作。

lua脚本延迟10秒怎么写

如何等待http请求在处理到angular 7中的下一步之前获得响应[重复]

批处理命令中如何在执行下一条命令时等待5秒钟

想要从折叠中删除文件时暂停 5 秒 [重复]

bash 脚本:自上次运行后等待几秒钟