我有两个需要运行的批处理文件 . 在这两个bat文件中调用两个不同的java文件 .
Java文件:J1.jar,J2.jar并包装在J1.bat(xxx / java -jar J1.jar)和J2.bat Bath文件中: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文件,但该命令提示符窗口仍然不会关闭 .
有没有办法关闭第二个命令提示符窗口?我听说使用自动热键来做窗口脚本,这是一个解决方案和更好的窗口脚本编写方法吗?
我非常感谢任何帮助 . 谢谢!
1 回答
在观察之后,我注意到在cmd“退出”后,它将不会返回到提示符,我将不得不按Enter键以使事情继续进行 . 我决定在退出后放一条新线,它有效 . 我用以下代码行换出了出口 .
这是来自这篇文章,Explain how dos-batch newline variable hack works