Windows 如何使我的程序等待批处理文件执行完成
在我的应用程序中,我调用了一个批处理文件,该批处理文件应用了一些业务逻辑并创建了一个zip文件Windows 如何使我的程序等待批处理文件执行完成,windows,batch-file,cmd,Windows,Batch File,Cmd,在我的应用程序中,我调用了一个批处理文件,该批处理文件应用了一些业务逻辑并创建了一个zip文件 process = Runtime.getRuntime().exec( "cmd /c start " + myBatchFile + " " + inputProjectPath + " " + outputProjectDirectory); int a = process.waitFor(); 现在,我的应用程序必须读取该文件并对其执行一些操作。但是,即使使用了waitFor(),程
process = Runtime.getRuntime().exec(
"cmd /c start " + myBatchFile + " " + inputProjectPath + " " + outputProjectDirectory);
int a = process.waitFor();
现在,我的应用程序必须读取该文件并对其执行一些操作。但是,即使使用了
waitFor()
,程序执行也不会等待批处理文件完成执行,以便读取正确的文件。请帮我解决这个问题。提前谢谢 摆脱start
@EJP谢谢您的快速响应。如果回答正确,则从process.execute()的字符串参数中删除start
不会打开命令提示符。请将/w
开关添加到start
命令。另请注意,start
的第一个引用参数被指定为窗口标题。通常,start/w”““实际命令…”…
用于消除此特征。不正确。它将执行CMD,这将以内联方式执行批处理文件。请参阅文档。通过使用START,可以使批处理文件从启动的CMD异步执行,这不是您所希望的。所以不要这样做。@EJP也许“典型”这个词有点宽泛。它的目的是更一般地说,批处理中的调用在遇到致命错误时表现不同,并且控制可能不会返回给调用方窗口,这是我使用“希望”这个术语的唯一真正原因。