Freigeben über


Get-Unique

Gibt eindeutige Elemente aus einer sortierten Liste zurück.

Syntax

Get-Unique
   [-InputObject <PSObject>]
   [-AsString]
   [<CommonParameters>]
Get-Unique
   [-InputObject <PSObject>]
   [-OnType]
   [<CommonParameters>]

Beschreibung

Das Get-Unique Cmdlet vergleicht jedes Element in einer sortierten Liste mit dem nächsten Element, entfernt Duplikate und gibt nur eine instance jedes Elements zurück. Die Liste muss sortiert sein, damit das Cmdlet ordnungsgemäß funktioniert.

Bei Get-Unique muss die Groß- und Kleinschreibung beachtet werden. Daher gelten Zeichenfolgen, die sich nur im Hinblick auf die Groß-/Kleinschreibung unterscheiden, als eindeutig.

Beispiele

Beispiel 1: Abrufen eindeutiger Wörter in einer Textdatei

Mit diesen Befehlen wird die Anzahl der eindeutigen Wörter in einer Textdatei ermittelt.

$A = $( foreach ($line in Get-Content C:\Test1\File1.txt) {
    $line.tolower().split(" ")
  }) | Sort-Object | Get-Unique
$A.count

Der erste Befehl ruft den Inhalt der Datei „File.txt“ ab. Er konvertiert jede Textzeile in Kleinbuchstaben und fügt dann an jedem Leerzeichen („ “) einen Zeilenumbruch ein, sodass jedes Wort in einer eigenen Zeile steht. Anschließend sortiert es die resultierende Liste alphabetisch (Standard) und verwendet das Get-Unique Cmdlet, um doppelte Wörter zu beseitigen. Die Ergebnisse werden in der $A Variablen gespeichert.

Der zweite Befehl verwendet die Count-Eigenschaft der Auflistung von Zeichenfolgen in $A , um zu bestimmen, wie viele Elemente in $Asind.

Beispiel 2: Abrufen eindeutiger ganzer Zahlen in einem Array

Dieser Befehl sucht die eindeutigen Elemente der Menge von ganzen Zahlen.

1,1,1,1,12,23,4,5,4643,5,3,3,3,3,3,3,3 | Sort-Object | Get-Unique

1
3
4
5
12
23
4643

Der erste Befehl verwendet ein Array von ganzen Zahlen, die in der Befehlszeile eingegeben werden, leitet sie an das Sort-Object Cmdlet weiter, um sortiert zu werden, und leitet sie dann an Get-Uniqueweiter, wodurch doppelte Einträge vermieden werden.

Beispiel 3: Abrufen eindeutiger Objekttypen in einem Verzeichnis

Dieser Befehl verwendet das Get-ChildItem Cmdlet, um den Inhalt des lokalen Verzeichnisses abzurufen, das Dateien und Verzeichnisse enthält.

Get-ChildItem | Sort-Object {$_.GetType()} | Get-Unique -OnType

Der Pipelineoperator (|) sendet die Ergebnisse an das Sort-Object Cmdlet. Die $_.GetType() Anweisung wendet die GetType-Methode auf jede Datei oder jedes Verzeichnis an. Sortiert dann Sort-Object die Elemente nach Typ. Ein anderer Pipelineoperator sendet die Ergebnisse an Get-Unique. Der OnType-Parameter weist darauf hin, nur ein Objekt jedes Typs Get-Unique zurückzugeben.

Beispiel 4: Abrufen eindeutiger Prozesse

Dieser Befehl ruft die Namen von Prozessen ab, die auf dem Computer ausgeführt werden, wobei Duplikate entfernt werden.

Get-Process | Sort-Object | Select-Object processname | Get-Unique -AsString

Der Get-Process Befehl ruft alle Prozesse auf dem Computer ab. Der Pipelineoperator (|) übergibt das Ergebnis an Sort-Object, wodurch die Prozesse standardmäßig alphabetisch nach ProcessName sortiert werden. Die Ergebnisse werden an das Select-Object Cmdlet weitergeleitet, das nur die Werte der ProcessName-Eigenschaft jedes Objekts auswählt. Die Ergebnisse werden dann an weitergeleitet, um Get-Unique Duplikate zu vermeiden.

Der AsString-Parameter weist Get-Unique an, die ProcessName-Werte als Zeichenfolgen zu behandeln. Ohne diesen Parameter Get-Unique behandelt die ProcessName-Werte als Objekte und gibt nur einen instance des Objekts zurück, d. h. den ersten Prozessnamen in der Liste.

Parameter

-AsString

Gibt an, dass dieses Cmdlet die Daten als Zeichenfolge verwendet. Ohne diesen Parameter werden Daten als Objekt behandelt. Wenn Sie also eine Auflistung von Objekten desselben Typs an Get-Uniqueübermitteln, z. B. eine Auflistung von Dateien, wird nur eine (die erste) zurückgegeben. Mit diesem Parameter können Sie nach den eindeutigen Werten von Objekteigenschaften suchen, z. B. Dateinamen.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Gibt die Eingabe für an Get-Unique. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder einen Ausdruck ein, durch den die Objekte abgerufen werden.

Dieses Cmdlet behandelt die mit InputObject übermittelte Eingabe als Sammlung. Einzelne Elemente in der Auflistung werden nicht aufgelistet. Da die Auflistung ein einzelnes Element ist, wird die mit InputObject übermittelte Eingabe immer unverändert zurückgegeben.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-OnType

Gibt an, dass dieses Cmdlet nur ein Objekt jedes Typs zurückgibt.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

PSObject

Sie können einen beliebigen Objekttyp an übergeben Get-Unique.

Ausgaben

PSObject

Der Typ des zurückgegebenen Get-Unique Objekts wird durch die Eingabe bestimmt.

Hinweise

Sie können auch auf den Get-Unique integrierten Alias verweisen. gu Weitere Informationen finden Sie unter about_Aliases.

Verwenden Sie zum Sortieren einer Liste Sort-Object. Sie können auch den Unique-Parameter von Sort-Object verwenden, um die eindeutigen Elemente in einer Liste zu suchen.