Megosztás a következőn keresztül:


Get-Unique

Egyedi elemeket ad vissza egy rendezett listából.

Syntax

AsString (Alapértelmezett)

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

UniqueByType

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

Description

A Get-Unique parancsmag összehasonlítja a rendezett lista elemeit a következő elemekkel, kiküszöböli az ismétlődéseket, és csak egy példányt ad vissza az egyes elemekből. A listát úgy kell rendezni, hogy a parancsmag megfelelően működjön.

Alapértelmezés szerint a Get-Unique megkülönbözteti a kis- és nagybetűk megkülönböztetése. Ennek eredményeképpen a csak karakterházként eltérő sztringek egyedinek minősülnek.

Példák

1. példa: Egyedi szavak lekérése szövegfájlban

Ezek a parancsok a szövegfájlban található egyedi szavak számát keresik.

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

Az első parancs lekéri a File.txt fájl tartalmát. Az egyes szövegsorokat kisbetűkké alakítja, majd az egyes szavakat külön sorra osztja a szóközzel (" "). Ezután betűrendbe rendezi az eredményül kapott listát (alapértelmezett), és a Get-Unique parancsmag használatával kiküszöböli az ismétlődő szavakat. Az eredmények a $A változóban vannak tárolva.

A második parancs a sztringgyűjteményének $A tulajdonságával határozza meg, hogy hány elem található $A.

2. példa: Egyedi egész számok lekérése tömbben

Ez a parancs megkeresi az egész számok készletének egyedi tagjait.

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

Az első parancs a parancssorba beírt egész számokból álló tömböt vesz fel, a rendezendő Sort-Object parancsmagra irányítja őket, majd a Get-Uniqueirányítja őket, ami kiküszöböli az ismétlődő bejegyzéseket.

3. példa: Egyedi objektumtípusok lekérése egy könyvtárban

Ez a parancs a Get-ChildItem parancsmaggal kéri le a helyi könyvtár tartalmát, amely fájlokat és könyvtárakat is tartalmaz.

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

A folyamatkezelő (|) elküldi az eredményeket a Sort-Object parancsmagnak. A $_.GetType() utasítás a GetType metódust alkalmazza minden fájlra vagy könyvtárra. Ezután Sort-Object típus szerint rendezi az elemeket. Egy másik folyamatüzemeltető elküldi az eredményeket Get-Unique. Az OnType paraméter arra irányítja Get-Unique, hogy minden típusból csak egy objektumot adjon vissza.

4. példa: Egyedi folyamatok lekérése

Ez a parancs lekéri a számítógépen futó folyamatok nevét, és az ismétlődések kiküszöbölhetők.

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

A Get-Process parancs az összes folyamatot lekéri a számítógépen. A folyamat operátora (|) átadja az eredményt Sort-Object, amely alapértelmezés szerint betűrendbe rendezi a folyamatokat ProcessNameszerint. Az eredmények a Select-Object parancsmagra vannak állítva, amely csak az egyes objektumok ProcessName tulajdonságának értékeit választja ki. Az eredmények ezután Get-Unique lesznek, hogy kiküszöböljék az ismétlődéseket.

Az AsString paraméter sztringként jelzi a Get-Unique értékeinek sztringként való kezelését a . E paraméter nélkül Get-Unique a ProcessName értékeket objektumként kezeli, és az objektumnak csak egy példányát adja vissza, azaz a lista első folyamatnevét.

5. példa: Kis- és nagybetűket megkülönböztető összehasonlítások használata egyedi sztringek lekéréséhez

Ez a példa kis- és nagybetűket nem érzékelyítő összehasonlításokat használ a sztringek tömbjének egyedi sztringjeinek lekéréséhez.

"aa", "Aa", "Bb", "bb", "aa" | Sort-Object -CaseSensitive | Get-Unique
aa
Aa
bb
Bb

6. példa: Egyedi sztringek lekéréséhez használjon kis- és nagybetűket érzéketlen összehasonlításokkal

Ez a példa kis- és nagybetűket nem érzékelyítő összehasonlításokat használ a sztringek tömbjének egyedi sztringjeinek lekéréséhez.

"aa", "Aa", "Bb", "bb", "aa" | Sort-Object | Get-Unique -CaseInsensitive
aa
Bb

Paraméterek

-AsString

Azt jelzi, hogy ez a parancsmag sztringként használja az adatokat. E paraméter nélkül az adatok objektumként lesznek kezelve, így amikor egy azonos típusú objektumgyűjteményt küld Get-Unique, például egy fájlgyűjteményt, az csak egyet (az elsőt) ad vissza. Ezzel a paraméterlel megkeresheti az objektumtulajdonságok egyedi értékeit, például a fájlneveket.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:False
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

AsString
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-CaseInsensitive

Alapértelmezés szerint a Get-Unique megkülönbözteti a kis- és nagybetűk megkülönböztetése. Ha ezt a paramétert használja, a parancsmag kis- és nagybetűk érzéketlen összehasonlítását használja.

Ez a paraméter a PowerShell 7.4-ben lett hozzáadva.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:False
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-InputObject

A Get-Uniquebemenetét adja meg. Adjon meg egy változót, amely tartalmazza az objektumokat, vagy írjon be egy parancsot vagy kifejezést, amely lekéri az objektumokat.

Ez a parancsmag gyűjteményként kezeli az InputObject használatával elküldött bemenetet. Nem számba veszi a gyűjtemény egyes elemeit. Mivel a gyűjtemény egyetlen elem, a InputObject használatával elküldött bemenetek mindig változatlanul lesznek visszaadva.

Paramétertulajdonságok

Típus:PSObject
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:True
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-OnType

Azt jelzi, hogy ez a parancsmag csak egy objektumot ad vissza minden típusból.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

UniqueByType
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

CommonParameters

Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.

Bevitelek

PSObject

Ehhez a parancsmaghoz bármilyen típusú objektumot csövezhet.

Kimenetek

PSObject

Ez a parancsmag duplikációk nélkül adja vissza a bemeneti objektumokat.

Jegyzetek

A PowerShell a következő aliasokat tartalmazza Get-Unique:

  • Minden platform:
    • gu

További információ: about_Aliases.

Lista rendezéséhez használja a Sort-Object. A Sort-Object paraméterével is megkeresheti a lista egyedi elemeit.