0

下面的代码有什么问题,它旨在仅在干净返回时报告某些事情已完成:

echo Other operations here & (echo Trying to launching Firefox & "%ProgramFiles(x64)%"\Mozilla\Firefox\Firefox.exe && echo Firefox has closed successfully) & echo More operations that should be done regardless here
4

2 回答 2

1

我相信你的语法是正确的,但你的期望是错误的。

您正在启动一个窗口应用程序 - 您的命令不会等待 Firefox 在继续之前关闭。您的代码可能正确报告 Firefox 已启动。只有当 Firefox 无法启动(可能它在机器上不存在)时,才会绕过您的条件代码。

通常,如果您想启动一个 Windowed 应用程序并等待它完成(关闭)然后再继续,那么您将使用 START /WAIT。

echo previous command & (start /wait "" yourApp.exe && echo successful closure) & echo additional commmands

但是,我不确定它是否适用于像 Firefox 这样的浏览器。许多浏览器由多个可执行文件组成。启动可执行文件可能会启动辅助进程,然后关闭。即使浏览器仍在运行,您的命令也会很高兴地报告启动 exe 成功返回。同样,我不确定 Firefox 是否会这样。但如果是这样,那么问题就会变得更加困难。您必须运行一个轮询进程以查看 Firefox 是否仍处于活动状态。

于 2012-09-13T21:58:05.787 回答
0

对不起,这个语法有效,周围的代码还有其他我没有意识到的问题。不要以为有人知道调试 DOS“脚本”的更好方法,它几乎和 VBS 错误消息一样糟糕!

于 2012-09-13T22:21:28.190 回答