tasklist
を使用して、CPUのX%以上を消費しているプロセスを見つけようとしています(後でtaskkill
で強制終了します)。
時間形式が何パーセントを表すかを知るにはどうすればよいですか?
ドキュメントには次のように書かれています。
TASKLIST options
/FI filter
そして、1つのフィルターは次のようになります。
CPUTIME eq, ne, gt, lt, ge, le CPU time in the format: hh:mm:ss.
hh - number of hours,
mm - minutes, ss - seconds
やってみたら
tasklist /FI "CPUTIME gt 00:00:10"
できます。
しかし、私が
tasklist /FI "CPUTIME gt 90"
そうではありません。
時間形式が90%を表していることをどうやって知ることができますか?または80%? CPU使用時間とCPU使用率の関係は何ですか?
タスクリストを使用してこれを行う簡単な方法はないようです。そのため、VBscriptまたは別のスクリプト言語でこれを行うか、別のアプローチを使用することをお勧めします。バッチファイルに制限されている場合は、 [〜#〜] wmic [〜#〜] コマンドを使用して、実行中のプロセスとそれぞれのCPU時間のリストを取得できます。
C:\> wmic path Win32_PerfFormattedData_PerfProc_Process get Name,PercentProcessorTime
Name PercentProcessorTime
Idle 0
System 0
Smss 0
csrss 0
winlogon 0
services 0
lsass 0
[...]
wmiprvse 100
wmic 0
_Total 100
私のテストでは、WMIクエリの実行中に急上昇したため、wmipsrv.exeのCPUが100%であることが示されていることに注意してください。スクリプトでそれを説明する必要があります。そうしないと、WMIサービスを絶えず強制終了しようとすることになります;)
参照:
http://waynes-world-it.blogspot.com/2008/09/useful-general-command-line-operations.html
http://technet.Microsoft.com/en-us/library/bb742610.aspx