使用命令行对wmic输出进行排序

时间:2013-12-06 14:11:32

标签: powershell wmic

我正在使用命令 wmic process get caption,virtualsize ,它返回2列。我想基于virtualsize参数以排序的方式格式化输出。我试图在powershell中运行命令并使用sort-object cmdlet,但看起来wmic没有返回powershell可以处理的系统对象。 实际用例它获取前5个内存消耗过程的名称。对此有任何帮助都很明显。

1 个答案:

答案 0 :(得分:1)

wmic是WMI的命令行界面,旨在用于CMD。它的输出是一个字符串数组,如果要按特定字段对输出进行排序,则必须将字符串转换为对象数组。虽然这是可能的,但它完全没有意义,因为PowerShell有一个cmdlet Get-WMIObject,提供与wmic相同的功能,但已经生成了可以通过管道输入Sort-Object cmdlet的对象:

Get-WMIObject Win32_Process |
    Select-Object Caption, VirtualSize |
    Sort-Object VirtualSize

或更短:

gwmi Win32_Process | select Caption, VirtualSize | sort VirtualSize