如何让WMIC列出的进程按CPU使用率从高到低排序而非字母序?
按CPU使用率从高到低排序进程的方法
你当前用的WMIC命令本身不支持直接排序,得借助额外工具或者换用更灵活的PowerShell命令,下面是两种可行方案:
方案1:WMIC 配合 Sort 命令(适用于命令提示符)
把WMIC的输出转成CSV格式,过滤掉表头后用sort命令反向排序:
wmic path win32_performatteddata_perfproc_process get Name,PercentProcessorTime /format:csv | findstr /v "^Name" | sort /r /k2
各部分作用:
/format:csv:将输出转为CSV格式,避免默认空白分隔导致排序错位findstr /v "^Name":剔除表头行,只保留进程数据sort /r /k2:/r表示从高到低反向排序,/k2指定按第二列(CPU使用率)排序
方案2:PowerShell 命令(更推荐)
PowerShell对进程数据的处理更直观,直接就能完成排序,两种写法任选:
第一种用性能计数器:
Get-Counter '\Process(*)\% Processor Time' | Select-Object -ExpandProperty CounterSamples | Sort-Object CookedValue -Descending | Select-Object InstanceName, CookedValue
第二种贴近你原WMIC的用法:
Get-WmiObject Win32_PerfFormattedData_PerfProc_Process | Sort-Object PercentProcessorTime -Descending | Select-Object Name, PercentProcessorTime
作用说明:
Sort-Object -Descending:直接按指定列(CPU使用率)降序排列Select-Object:只保留进程名称和CPU使用率两个字段,输出更简洁
PowerShell的方案不会有WMIC配合sort时的格式混乱问题,排序结果更准确,优先推荐用这个。
内容的提问来源于stack exchange,提问作者John Doe
相关产品推荐
相关产品推荐

