使用PowerShell从每个组中选择前5个项目

时间:2014-03-26 18:05:08

标签: powershell

是否有1-2行解决方案使用PowerShell从每个组中选择前五项?

例如,Get-Process按名称返回的组进程,并查看前三个wp3进程。

当然我可以按每个唯一名称进行迭代,但我希望有一个更短的解决方案。

2 个答案:

答案 0 :(得分:25)

在这里,您可以像以前一样使用Get-Process

Get-Process | Group-Object ProcessName | ForEach-Object {
    $_ | Select-Object -ExpandProperty Group | Select-Object -First 5
}

这将按属性对事物进行分组,然后为每个组重新将组扩展为其原始形式,并选择前5个条目。

我想你可以在Select-Object -First 5管道之前进行排序,只能获得它的顶级CPU使用率属性,而不仅仅是5个看似随机的属性。

答案 1 :(得分:1)

对于你想要的,也许Format-Table -GroupBy ProcessName会是一个更好的选择,例如:

Get-Process | Format-Table -GroupBy ProcessName