How to convert a tasklist's CPU time to CPU % usage?

后端 未结 3 497
栀梦
栀梦 2020-12-09 21:11

I\'m trying to use tasklist to find out which process is consuming more than X percent of my CPU (to later kill it with taskkill.)

How do

3条回答
  •  温柔的废话
    2020-12-09 21:56

    It doesn't look like there's an easy way to do this with tasklist, so I would suggest either doing this in VBscript or another scripting language, or using a different approach. If you're constrained to batch files then you could use the WMIC command to get the list of running processes with their respective 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
    

    Note that this in my testing showed wmipsrv.exe as having 100% CPU, because it spiked while executing the WMI query. You should account for that in your script or you'll end up trying to kill the WMI service constantly ;)

    Reference:
    http://waynes-world-it.blogspot.com/2008/09/useful-general-command-line-operations.html
    http://technet.microsoft.com/en-us/library/bb742610.aspx

提交回复
热议问题