我有一个包含各种TaskNumbers的数组,我正在尝试获取唯一的成员和非唯一的成员(因为我必须为每个成员采取不同的操作)
现在,如果我使用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
答案 0 :(得分:4)
您可以根据Group-Object
使用TaskNumber
cmdlet 分组列表。这将允许您根据属性的出现过滤对象。
以下代码段将返回每个TaskNumber
只有一次的内容:
$Thisweekarray |
Group-Object TaskNumber |
Where-Object Count -eq 1 |
Select-Object -Expand Group
只需使用Where-Object Count -gt 1
获取多次出现的TaskNumber。