2017-02-23 4 views
-1

acc.txtファイルにログを書き込むプロセスがあり、特定の文字列が.txtファイル内に見つかったときにプロセスを再開しようとしています。文字列が見つかったら、acc.txtの内容を消去し、プロセスを終了する必要があります。文字列がテキストファイル内に見つかった場合にプロセスを終了するバッチスクリプト

更新日:エラーは修正されました。以下の解決策を参照してください。

+2

これは質問が、タスク要求ではありません。試したコードを提供して、問題点を説明してください。このヘルプトピックを参照してください:[ask]! – aschipfl

答えて

0

次の例のように、findstrtaskkillコマンドを使用することができます。

@echo off 
pushd %~dp0 

:loop 
    find "Error8902" acc.txt >nul 2>&1 && goto :stringFound 
    echo String not found 
    timeout /nobreak 1 >nul  & :: Interval between scanning 
goto :loop 


:stringFound 
    echo String found, killing process 
    taskkill /f /t /im process.exe 
    del /F acc.txt 
    pause 
+0

エラーコード8902がacc.txtファイルの中に存在していますが、文字列が見つかりませんでした。 – Chris

+0

私は次のように置き換えました:find "Error8902" acc.txt> nul 2>&1 && goto:stringFoundそして今働いているようですが、問題はacc.txtの内容がそのまま残っていて、削除されないということです。同時に、管理者としてバッチスクリプトを実行すると文字列が見つかりません。 – Chris

+0

@Chris、管理者としてバッチファイルを実行すると、作業ディレクトリがSystem32ディレクトリに設定されるためです。 – Squashman

関連する問題