外部コンソールプログラムを実行する簡単な.bat
スクリプトがあり、それが完了すると、数行のデータが出力されます。
外部プログラムが完了した後、コンソール出力でキーワードを探す方法はありますか?
例:外部プログラムが完了すると、.bat
ファイルはキーワード:successを検索し、見つかった場合は逆にコンソール出力を保存します。キーワードが:failedの場合、.bat
プログラムは終了します。
外部コンソールプログラムを実行する簡単な.bat
スクリプトがあり、それが完了すると、数行のデータが出力されます。
外部プログラムが完了した後、コンソール出力でキーワードを探す方法はありますか?
例:外部プログラムが完了すると、.bat
ファイルはキーワード:successを検索し、見つかった場合は逆にコンソール出力を保存します。キーワードが:failedの場合、.bat
プログラムは終了します。
通常、成功のチェックは、外部プロセスの戻りコードを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
それがあなたがしたいことではないので、それが実際に一致するテキストを出力しないことを確認します。