【发布时间】:2014-11-24 06:05:24
【问题描述】:
我有两个需要运行的批处理文件。这两个bat文件中调用了两个不同的java文件。
Java 文件:J1.jar、J2.jar 并被包装在 J1.bat (xxx/java -jar J1.jar) 和 J2.bat 中 浴缸文件:batch1.bat、batch2.bat 可执行程序:p1.exe、p2.exe、p3.exe、p4.exe
J1 将自己打开一个命令提示符(cmd 提示符窗口 #1)并触发 batch2.bat(cmd 提示符窗口 #2),在 batch2 完成后,J1 将执行一些其他操作然后退出。所以我肯定需要关闭 cmd 提示窗口 #2 并返回到 cmd 提示窗口 #1,这样 J1 才能完成它必须做的事情。
现在,在 batch2.bat 完成后,窗口仍然存在,显然它不会将控制权返回给 cmd 提示窗口 #1。
这是两个批处理文件
batch1.bat
call J1 batch2.bat
exit
batch2.bat
call J2 p1 p1_args
start /b J2 p2 p2_args
start /b J2 p3 p3_args
call J2 p4 p4_args
exit
我尝试了以下方法,但没有一个会关闭 cmd 提示窗口#2
- 启动 J2 p2 p2 p2_args(这将打开另一个窗口并且不会关闭 cmd 提示窗口#2
- start "" J2 p2 p2_args(这将打开另一个窗口并且不会关闭 cmd 提示窗口#2)
- start /b cmd /c J2 p2 p2_args(这不会打开新窗口但不会关闭cmd提示窗口#2)
- 在 batch2.bat 中使用 exit /b(不关闭 cmd 提示窗口#2)
我还尝试将这两个 p2 和 p3 放在单独的 bat 文件中,并从 batch2.bat 中调用该 bat 文件,但该命令提示符窗口仍然无法关闭。
有没有办法关闭第二个命令提示符窗口??我听说使用自动热键来做窗口脚本,这是一个解决方案和更好的方法来做窗口脚本吗?
我非常感谢任何帮助。谢谢!
【问题讨论】:
-
你用 cmd /k 启动 batch2 吗?如果是这样,将其更改为 cmd /c
-
batch2 用 cmd /c 调用
标签: java windows batch-file command-line cmd