0

外部コンソールプログラムを実行する簡単な.batスクリプトがあり、それが完了すると、数行のデータが出力されます。

外部プログラムが完了した後、コンソール出力でキーワードを探す方法はありますか?

例:外部プログラムが完了すると、.batファイルはキーワード:successを検索し、見つかった場合は逆にコンソール出力を保存します。キーワードが:failedの場合、.batプログラムは終了します。

4

1 に答える 1

1

通常、成功のチェックは、外部プロセスの戻りコードIF ERRORLEVEL構成で直接チェックすることによって行われます。

external.exe
IF ERRORLEVEL 4 GOTO error1
IF ERRORLEVEL 3 GOTO error2
IF ERRORLEVEL 2 GOTO error3
IF ERRORLEVEL 1 GOTO error4
REM if you reached this point, external.exe reported success

もちろん、これは外部プログラムに依存しているので、単にそれを使用できないかもしれません。その場合、外部プログラムの出力をリダイレクトし、それを使用findして検索することができます。findゼロ以外の(正確には覚えていない)戻りコードを使用して、ターゲット文字列が見つからなかったことを示します。だからあなたは書くことができます:

external.exe | find >nul "success"
IF ERRORLEVEL 1 GOTO notfound
REM if you reached this point, "success" was present in the output

>nulリダイレクトは、findそれがあなたがしたいことではないので、それが実際に一致するテキストを出力しないことを確認します。

于 2012-05-22T20:51:24.300 に答える