我正在尝试tasklist
找出哪个进程消耗的CPU超过我的CPU的百分比(以后用它来杀死它taskkill
.)
我如何知道时间格式代表的百分比?
文件说:
TASKLIST options /FI filter
一个过滤器可能是:
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命令获取正在运行的进程列表及其各自的CPUTime:
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
请注意,在我的测试中,这表明wmipsrv.exe具有100%的CPU,因为它在执行WMI查询时飙升.您应该在脚本中考虑到这一点,否则您将最终试图不断杀死WMI服务;)
参考:
http ://waynes-world-it.blogspot.com/2008/09/useful-general-command-line-operations.html
http://technet.microsoft.com/en-us/library/bb742610.aspx