我在批处理文件中有以下代码片段,用于在循环中运行带有参数的程序:
for /F "tokens=*" %%a in (some-list.txt) do (
java -jar some-java-package.jar com.example.package.class %%a
)
有时Java应用程序在内存异常上崩溃(这可能是一个重要的点,因为根据我目前的编程经验,这些似乎是特殊的异常,我无法像我一样抓住它们会捕获程序代码中的正常异常。)
在这种情况下,似乎我的批处理脚本暂停,直到我采取行动:我可以按Ctrl-C
并按批次的问题,如果我想停止批处理作业回复N
,那么它将继续下一个节目电话。
是否可以告诉批次自动进行此类事件?
答案 0 :(得分:2)
您应该使用java
命令调用start
,如下所示:
for /F "tokens=*" %%a in (some-list.txt) do (
start "" /WAIT "java" -jar some-java-package.jar com.example.package.class %%a
)
/WAIT
开关允许start
等待,直到应用程序(java
)完成执行。
""
部分定义了窗口标题(这里定义的是start
,有时会在没有给出标题的情况下将其与命令行混淆。)