コマンドを呼び出すバッチ ファイルを作成していて、発生する可能性のあるエラーを処理したいと考えています。ネイティブ CLI コマンドのみを使用する必要があります。つまり、PowerShell などを使用していれば、これを簡単に実行できることはわかっていますが、そうではありません。
私が望むのは、エラーが発生した場合は出力を確認し、エラーが予想される場合は処理を続行し、そうでない場合は中止することです。ただし、有用な方法で出力を解析するのに問題があります。
これは私が得ることができる限り近いようです:
command | (find /i "valid" >NUL && goto :okay || goto :stop)
ここでは、コマンドの出力を にパイプしていますfind
。問題は、これがコマンドの終了ステータスに関係なく発生することです。成功メッセージと失敗メッセージの両方が送信されます。1つのオプションは次のとおりです。
command 1>NUL 2>(find /i "valid" >NUL && goto :okay || goto :stop)
ただし、ファイルにリダイレクトしようとしているため、これは機能しません。コマンドはfind
入力を受け取りません。
(テスト目的でcommand
、メッセージをエコーする cmd ファイルでありexit /b 1
、エラー用です)
何か案は?