首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想从另一个.bat文件启动2个.bat文件

问我想从另一个.bat文件启动2个.bat文件
EN

Stack Overflow用户
提问于 2018-12-08 04:26:46
回答 2查看 142关注 0票数 0

来自另一个Main.bat文件的bat文件

文件包含如下内容,我希望这两个文件都延迟15秒启动,直到我用"Ctrl+C“关闭它们,有人能帮我解决这个用例吗?

Main.bat

代码语言:javascript
复制
echo Task-1:
call C:\Users\user\bat\My_bat1.bat

echo Task-2:
call C:\Users\user\bat\My_bat2.bat

My_bat1.bat

代码语言:javascript
复制
start /wait cmd.exe /k "cd PATH && mvn -P dev"

My_bat2.bat

代码语言:javascript
复制
start /wait cmd.exe /k "cd PATH && mvn -Dspring.profiles.active=dev,swagger,no-liquibase -Dspring.cloud.config.profile=dev -DskipTests=true"
EN

回答 2

Stack Overflow用户

发布于 2018-12-08 08:08:01

如果你只是询问如何将你的批处理文件延迟15秒,你可以这样做:

代码语言:javascript
复制
choice /t 15 /D y /n

如果没有,你能澄清你的问题吗?

编辑:根据您的更新,您希望在第一个子bat文件中添加pause,然后在父bat文件中的call命令之前添加上面的代码。

票数 0
EN

Stack Overflow用户

发布于 2018-12-10 01:48:25

你真的应该编辑你的问题,包括你想从评论中得到的事件的顺序,因为这会造成很多混乱。

我会试着拼凑出你想要的:

  • 启动作业1,创建新的窗口
  • 不等待作业1完成,而是等待15秒
  • 启动作业2,创建新的窗口
  • 如果在任一窗口中按Ctrl+C,则应停止作业并关闭窗口
  • 我假定,如果一个作业在另一个作业启动之前或之后终止,则另一个作业仍需要启动或继续工作。

首先,当前运行的程序-在您的情况下似乎是maven -实际上接收Ctrl+C并决定如何对其执行操作。我不确定它是否按照您想要的方式运行。

Main.bat

代码语言:javascript
复制
echo Task-1:
"%comspec%" /c "C:\Users\user\bat\My_bat1.bat"

timeout 15 /nobreak

echo Task-2:
"%comspec%" /c "C:\Users\user\bat\My_bat2.bat"

我在两次启动之间添加了一个timeout命令。它等待15秒。如果您删除了/nobreak,也可以通过按键提前启动task#2来中断等待

我发现在这种情况下,call有时会引入奇怪的错误,所以我更喜欢"%comspec%" /c。它做同样的事情,除了它不会接收回子文件中设置的环境变量,这在您的场景中很好。

My_bat1.bat

代码语言:javascript
复制
start "" "%comspec%" /c "cd PATH & mvn -P dev & timeout -1 /nobreak"

我删除了/wait,这会阻止第二个mvn实例启动,直到第一个实例完成或终止。

我用/c替换了/k,并添加了timeout来代替/k来暂停执行。

除了Ctrl+C,timeout -1 /nobreak语句会导致命令解释器无限期地等待,而没有机会停止它。

如果mvn正常退出,您可以删除/nobreak以允许其通过任何击键关闭(如果发生这种情况)

"%comspec%"与cmd.exe相同,但如果微软决定更改命令解释程序可执行文件名称,则首选"%comspec%"。由于start将第一个双引号字符串解释为窗口名称,因此之前的""为空。

我假设在当前文件夹中有一个名为PATH的文件夹,因为它不是一个变量。此外,变量%PATH%是为可执行文件/库搜索路径列表保留的,除非你真的知道自己在做什么,否则不能给它赋一些随机值,也不能和cd命令一起使用。参见path /?。

我还使用了&而不是&&来防止窗口在mvn崩溃时关闭。

My_bat2.bat也可以进行类似的更改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53676401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档