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 が起動に失敗した場合(おそらくマシン上に存在しない場合) にのみ、条件付きコードがバイパスされます。

通常、ウィンドウ アプリケーションを起動し、終了する (閉じる) まで待ってから続行する場合は、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 に答える