【问题标题】:Powershell Sort-Object -UniquePowershell 排序对象-唯一
【发布时间】:2017-10-13 19:55:05
【问题描述】:

我有一个包含各种任务编号的数组,我正在尝试获取唯一的成员和非唯一的成员(因为我必须为每个成员采取不同的操作)

现在,如果我使用Sort-Object -Property TaskNumber -Unique,它会为它找到的每组非唯一值返回 1 个非唯一值(参见下面的 TK-15386)。我需要真正获得唯一的值,而不是包含一个实际上根本不是唯一的结果。即使我可以以某种方式标记这个独奏返回的非唯一值,我以后也可以解释它。有人有什么想法吗?我正在使用 PS v4,但如果在 v5 中有某种修复,可以升级。

$Thisweekarray | Select-Object -Property TaskNumber | Sort-Object -Property TaskNumber 

TK-02213                                                                                                                                                                             
TK-02242                                                                                                                                                                             
TK-15386                                                                                                                                                                             
TK-15386                                                                                                                                                                             
TK-15386                                                                                                                                                                             
TK-15386                                                                                                                                                                             
TK-15387                                                                                                                                                                             

$Thisweekarray | Select-Object -Property TaskNumber | Sort-Object -Property TaskNumber -Unique                                                                                                                                                                          

TK-02213                                                                                                                                                                             
TK-02242                                                                                                                                                                             
TK-15386                                                                                                                                                                             
TK-15387 

【问题讨论】:

    标签: arrays powershell


    【解决方案1】:

    您可以使用Group-Object cmdlet 根据TaskNumber 对您的列表进行分组。这将允许您根据属性的出现过滤您的对象。

    下面的 sn-p 将返回每个只出现一次的TaskNumber

    $Thisweekarray | 
        Group-Object TaskNumber | 
        Where-Object Count -eq 1 | 
        Select-Object -Expand Group 
    

    只需使用Where-Object Count -gt 1 即可获取多次出现的TaskNumber。

    【讨论】:

      猜你喜欢
      • 2021-12-02
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 2021-08-06
      • 1970-01-01
      • 1970-01-01
      • 2019-01-04
      相关资源
      最近更新 更多