在PowerShell中将对象分组

时间:2018-11-25 10:04:05

标签: powershell calculated-columns

我希望将Application和ShortcutName列分组为一列,同时保持Version和Architecture列不变:

$object | Select-Object -Property Application, Version, Architecture, ShortcutName |
  Sort-Object -Property @{expression="Architecture";Descending=$true},Application | 
    Out-GridView

我该怎么做?

1 个答案:

答案 0 :(得分:3)

在PowerShell中,您可以使用Group-Object按属性对对象进行分组。您想要的不是那种意义上的分组,而是定义一个新的自定义属性。

您可以使用NameExpression键创建自定义属性哈希表。

类似的事情可能会解决问题。

$Expression = {
    if ($_.Application) {
        $_.Application
    } 
    else {
        $_.Shortcut
    } 
}

$object | 
    Select-Object -Property @{ Name = 'Application'; Expression = $Expression }, Version, Architecture | 
    Sort-Object -Property @{expression="Architecture";Descending=$true},Application | 
    Out-GridView

该表达式检查Application属性是否已填充。如果是这样,它将使用现有的应用程序名称,否则将使用Shortcut属性作为应用程序名称。