下面的代码有什么问题,它旨在仅在干净返回时报告某些事情已完成:
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
下面的代码有什么问题,它旨在仅在干净返回时报告某些事情已完成:
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
我相信你的语法是正确的,但你的期望是错误的。
您正在启动一个窗口应用程序 - 您的命令不会等待 Firefox 在继续之前关闭。您的代码可能正确报告 Firefox 已启动。只有当 Firefox 无法启动(可能它在机器上不存在)时,才会绕过您的条件代码。
通常,如果您想启动一个 Windowed 应用程序并等待它完成(关闭)然后再继续,那么您将使用 START /WAIT。
echo previous command & (start /wait "" yourApp.exe && echo successful closure) & echo additional commmands
但是,我不确定它是否适用于像 Firefox 这样的浏览器。许多浏览器由多个可执行文件组成。启动可执行文件可能会启动辅助进程,然后关闭。即使浏览器仍在运行,您的命令也会很高兴地报告启动 exe 成功返回。同样,我不确定 Firefox 是否会这样。但如果是这样,那么问题就会变得更加困难。您必须运行一个轮询进程以查看 Firefox 是否仍处于活动状态。
对不起,这个语法有效,周围的代码还有其他我没有意识到的问题。不要以为有人知道调试 DOS“脚本”的更好方法,它几乎和 VBS 错误消息一样糟糕!