【问题标题】:batch file : execute start with a delay without pausing the rest of the script批处理文件:延迟执行开始而不暂停脚本的其余部分
【发布时间】:2017-12-14 12:25:26
【问题描述】:

我制作了一个批处理文件,需要在本地打开浏览器并启动一个java程序。

目前简化为:

start "" http://localhost
java -start_java_program

这工作正常,但浏览器现在已经在 java 完成启动本地服务器之前启动。所以你会得到一个未找到的页面。

我无法在java 命令之后执行start 命令,因为 java 一直从 .bat 文件执行。

理想情况下,我想以 5 秒的延迟调用 start 并继续执行脚本并调用 java.util.因此,睡眠和超时​​之类的东西对我不起作用,因为 java 不会启动。

有人知道怎么做吗?

谢谢!

【问题讨论】:

  • 不,情况并非如此,因为这将暂停脚本,但 java 仍然没有启动。我会尝试 subbu 的方式:)!

标签: batch-file delay batch-processing pause


【解决方案1】:

这基本上是Magoo's answer,但没有额外的批处理文件。我还在初始 START 命令中添加了/B 选项 - 不需要出现第二个控制台。

@echo off
start "" /b cmd /c "timeout /nobreak 10 >nul & start "" http://localhost"
echo java -start_java_program

【讨论】:

  • 精湛的一个。你拯救了我的一天。
【解决方案2】:

如果您使用“开始”,它将启动一个新的命令窗口

例如,

start java -start_java_program

然后您可以等待所需的时间 例如,

timeout /T 10

等待 10 秒

然后启动您的浏览器

【讨论】:

  • 或运行start "" /b java -start_java_program <nul之类的东西在后台运行java,但仍然连接到当前控制台。只要 java 正在运行并附加到控制台,控制台就会一直存在。它不应该干扰从控制台读取的后续程序,因为它的stdin 被重定向到nul(但如果它手动打开conconin$ 则可以,直到你尝试才知道)。它可以写入控制台,但这应该不是问题。
【解决方案3】:
start "" delayedstart.bat 10 http://localhost

delayedstart.bat 在哪里

@echo off
setlocal
timeout /t %1 >nul
start "" %2

我没试过,但是应该可以的...

【讨论】:

    猜你喜欢
    • 2016-01-18
    • 1970-01-01
    • 2021-03-11
    • 2023-03-30
    • 1970-01-01
    • 2018-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多