2017-03-27 3 views
1

ログファイルを出力するWindowsプログラムがあります。私はすぐに論文の単語 "処理が終了"を検出するバッチファイルを作成する必要があります。どうすればいいのですか?ログファイル内の単語を検出するバッチファイルを作成する必要があります

+0

「即座に」とは、「プログラムがまだロギングしている間」ですか? 「処理が終了しました」と言ったら、終了しませんか? – Stephan

+0

これはpowersheellで行うことができます。このトピックをチェックしてください。http://stackoverflow.com/questions/17238366/powershell-searching-for-a-part-of-a-string-in-a-logfile –

+0

「即座に」が可能です問題は、私の経験では、Windowsのプログラム出力行をstdoutに完了したときにそれを終了します。 FORループ内の 'tail.exe -f'プログラムと同様のものを試していますが、FORループはtail.exeが終了するまで何も表示しません。 – user2956477

答えて

0

あなたの「即時の」要件は、私には少し曖昧です。その行を書いた直後?プロセスが終了した直後?ログファイルが閉じられた直後ですか?あなたのシステムは、どのようにログファイルを読む準備ができているのでしょうか?ここで

がします

  • ものです、それはそう/R ecursivelyんc:\temp
  • 内のすべての*.msgを読み込みます。レポートファイルc:\temp\myreport.log
  • コマンドはerror:を探している、あなたはprocessing ended
  • を探しているだろうし、それがヒットを見つけたとき、それは>>(別名書き込み)行全体%%b、あなたはあなたが望むものは何でも引き起こす可能性ものの。

    /Rのための "C:\ tempに" %%中(.MSG)を行う( F/'/見つける(中の%% B "= 2つのトークン=をスキップする" ためのI "エラー:" "今あなたが読んで、ログに基づいて行動するために何かを持っていることを\一時\のmyreport.log " ) )

..:%% C" ')( は%% bは>>エコーん"私はタイミングの問題に取り組む必要があると思います。最初にアプリケーションを起動させる要因は何ですか?あなたはそのコードを管理していますか?あなたはそれにトリガーのいくつかのタイプをピギーバックできますか?

+0

はい、Leea Goエンジン(sjeng.org)です。私はコードを管理していません。 – Marcin

+0

私の質問に言い換えると、ログファイル "output.log"があります。それは成長しており、特定の時点で、その行には特定の言葉があります。私はそれがいつ起こるかを知る必要があります。 – Marcin

+0

Leela Goエンジンのコンソール出力をパイプするだけでよいでしょう。アクションはエンジンを殺すことで、次のゲームが始まるのを防ぎます。 「ゲームが終了しました」とは、アクションを引き起こす正確な文字列です。 – Marcin

関連する問題