2017-05-15 5 views
2

Ich habe ein Array, das eine Vielzahl von TaskNumbers enthält und ich versuche, die Mitglieder zu erhalten, die eindeutig sind und diejenigen, die nicht eindeutig sind (wie ich verschiedene Aktionen für jedes)Powershell Sort-Object -Unique

Nun, wenn ich Sort-Object -Property TaskNumber -Unique verwende, gibt es einen nicht eindeutigen Wert für jede Gruppe von nicht eindeutigen Werten zurück, die gefunden werden (siehe TK-15386 unten). Ich muss tatsächlich die Werte erhalten, die einzigartig sind, im Gegensatz zu einem Ergebnis, das in Wirklichkeit gar nicht einzigartig ist. Selbst wenn ich dieses Solo als nicht-eindeutigen Wert kennzeichnen könnte, könnte ich es später erklären. Hat jemand irgendwelche Ideen? Benutzt PS v4, könnte aber upgraden, wenn es in v5 eine Fehlerbehebung gibt.

$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 

Antwort

3

Sie können das Group-Object Cmdlets Gruppe Ihre Liste auf der TaskNumber basiert. Auf diese Weise können Sie Ihre Objekte basierend auf dem Vorkommen einer Eigenschaft filtern.

Der folgende Ausschnitt kehrt jeder TaskNumber, dass nur einmal vorkommen:

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

Nur Where-Object Count -gt 1 verwenden, um die TaskNumber mit mehreren Vorkommen zu erhalten.