Windows 如何使我的程序等待批处理文件执行完成

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(),程

在我的应用程序中,我调用了一个批处理文件,该批处理文件应用了一些业务逻辑并创建了一个zip文件

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也许“典型”这个词有点宽泛。它的目的是更一般地说,批处理中的调用在遇到致命错误时表现不同,并且控制可能不会返回给调用方窗口,这是我使用“希望”这个术语的唯一真正原因。