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

Ale*_*kha 15 powershell

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

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

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

The*_*ian 31

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

Get-Process | Group-Object ProcessName | ForEach-Object {
    $_ | Select-Object -ExpandProperty Group | Select-Object -First 5
}
Run Code Online (Sandbox Code Playgroud)

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

我想你也可以在Select-Object -First 5管道之前排序,只能获得它的顶级CPU使用属性或者其他东西,而不仅仅是5个看似随机的属性.

  • 所以详细;)`get-process |组名|%{$ _.group [0..4]}` (8认同)
  • @TesselttingHeckler 冗长是明确的清晰度。在书面脚本中,尤其是在教程中,最佳做法是使用完整的命令名称。简而言之,别名会发生变化,并且您无法确定它们是否会存在于每个系统或每个版本的 PowerShell 上(尤其是 PowerShell 6+)。别名应保留用于命令行中的临时语句,而不是需要便于移植或被大于 1 的受众理解的正式书写。 (5认同)