【发布时间】:2017-05-29 07:36:02
【问题描述】:
是否有任何 1-2 行的解决方案可以使用 PowerShell 从每个组中选择前五项?
例如,按名称对Get-Process 返回的进程进行分组,并查看前三个 wp3 进程。
当然,我可以按每个唯一名称进行迭代,但我希望有更短的解决方案。
【问题讨论】:
标签: powershell
是否有任何 1-2 行的解决方案可以使用 PowerShell 从每个组中选择前五项?
例如,按名称对Get-Process 返回的进程进行分组,并查看前三个 wp3 进程。
当然,我可以按每个唯一名称进行迭代,但我希望有更短的解决方案。
【问题讨论】:
标签: powershell
你在这里,像以前一样使用Get-Process。
Get-Process | Group-Object ProcessName | ForEach-Object {
$_ | Select-Object -ExpandProperty Group | Select-Object -First 5
}
这将按属性对事物进行分组,然后为每个组将组重新扩展为其原始形式,并选择前 5 个条目。
我想您也可以在 Select-Object -First 5 管道之前对其进行排序,以便仅获得它的最高 CPU 使用率属性或其他东西,而不仅仅是 5 个看似随机的属性。
【讨论】:
get-process|group name|%{$_.group[0..4]}
对于你想要的,也许Format-Table -GroupBy ProcessName 会是一个更好的选择,例如:
Get-Process | Format-Table -GroupBy ProcessName
【讨论】:
" and *see* first 3 wp3 processes"。 :-)