私はあなたがこれで私を助けてくれることを願っています.私は何時間も研究を試みましたが、どこにも行けないようです.
1 日に数回ランダムに 50 以上の CPU を消費し始めるプロセスがあります。バックグラウンドで実行され、プロセスの CPU 使用率が 50 を超えた場合にサービスを再起動するバッチ ファイルを作成しようとしています (問題)。
このフォーラムで非常に近いものを見つけました.「Elektro Hacker」という男が答えましたが、彼の答えは特定のプロセスの使用率だけでなく、全体的なCPU使用率です. 彼が提案したバッチファイルは次のとおりです。
@Echo OFF
SET "SERVICE=Themes"
SET /A "MAXUSAGE=95"
SET /A "INTERVAL=5"
:LOOP
For /F %%P in ('wmic cpu get loadpercentage ^| FINDSTR "[0-9]"') do (
IF %%P GTR %MAXUSAGE% (
Echo [%TIME:~0,8%] CPU Usage: %%P%% Reached the limit: %MAXUSAGE%%%
Echo Restarting %SERVICE% ...
SC STOP "%SERVICE%" 1>NUL
SC START "%SERVICE%" 1>NUL
Echo Service restarted.
) ELSE (
Echo [%TIME:~0,8%] CPU Usage: %%P%%
)
)
Ping -n %INTERVAL% Localhost >NUL
GOTO :LOOP
彼はまた、次のように述べています。
wmic path Win32_PerfFormattedData_PerfProc_Process get Name,PercentProcessor
Time
これは私が乗り越えることができない部分であり、エラーが発生し続け、少し変更して修正しようとするたびに、さまざまなエラーが発生します!
誰かがこのコードを少し変更して、たとえば「MyProcess」のCPUを取得できるようにすることはできますかプロセスとサービスの名前が異なります。これが違いを生むかどうかはわかりませんが、言及する価値があると思いました
私のコーディング知識はせいぜい最小限なので、あなたが私に与えることができる助けやアドバイスは大歓迎です.これは私の狂気です!
どうもありがとう!