acc.txt
ファイルにログを書き込むプロセスがあり、特定の文字列が.txt
ファイル内に見つかったときにプロセスを再開しようとしています。文字列が見つかったら、acc.txt
の内容を消去し、プロセスを終了する必要があります。文字列がテキストファイル内に見つかった場合にプロセスを終了するバッチスクリプト
更新日:エラーは修正されました。以下の解決策を参照してください。
acc.txt
ファイルにログを書き込むプロセスがあり、特定の文字列が.txt
ファイル内に見つかったときにプロセスを再開しようとしています。文字列が見つかったら、acc.txt
の内容を消去し、プロセスを終了する必要があります。文字列がテキストファイル内に見つかった場合にプロセスを終了するバッチスクリプト
更新日:エラーは修正されました。以下の解決策を参照してください。
次の例のように、findstr
とtaskkill
コマンドを使用することができます。
@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
エラーコード8902がacc.txtファイルの中に存在していますが、文字列が見つかりませんでした。 – Chris
私は次のように置き換えました:find "Error8902" acc.txt> nul 2>&1 && goto:stringFoundそして今働いているようですが、問題はacc.txtの内容がそのまま残っていて、削除されないということです。同時に、管理者としてバッチスクリプトを実行すると文字列が見つかりません。 – Chris
@Chris、管理者としてバッチファイルを実行すると、作業ディレクトリがSystem32ディレクトリに設定されるためです。 – Squashman
これは質問が、タスク要求ではありません。試したコードを提供して、問題点を説明してください。このヘルプトピックを参照してください:[ask]! – aschipfl