Group-Object
Csoportosítja azokat az objektumokat, amelyek ugyanazt az értéket tartalmazzák a megadott tulajdonságokhoz.
Syntax
Default (Alapértelmezett)
Group-Object
[[-Property] <Object[]>]
[-NoElement]
[-AsHashTable]
[-AsString]
[-InputObject <PSObject>]
[-Culture <String>]
[-CaseSensitive]
[<CommonParameters>]
Description
A Group-Object parancsmag egy adott tulajdonság értéke alapján csoportokban jeleníti meg az objektumokat.
Group-Object egy olyan táblát ad vissza, amely minden tulajdonságértékhez egy sort tartalmaz, és egy oszlopot, amely az adott értékkel rendelkező elemek számát jeleníti meg.
Ha egynél több tulajdonságot ad meg, Group-Object először az első tulajdonság értékei szerint csoportosítja őket, majd minden tulajdonságcsoporton belül a következő tulajdonság értéke szerint csoportosítja őket.
Példák
1. példa: Fájlok csoportosítása bővítmény szerint
Ez a példa rekurzív módon lekéri a fájlokat $PSHOME alatt, és fájlnévkiterjesztés alapján csoportosítja őket. A rendszer elküldi a kimenetet a Sort-Object parancsmagnak, amely az adott bővítményhez talált darabszámfájlok alapján rendezi őket. Az üres Név könyvtárakat jelöl.
Ez a példa a NoElement paramétert használja a csoport tagjainak kihagyásához.
$files = Get-ChildItem -Path $PSHOME -Recurse
$files | Group-Object -Property extension -NoElement | Sort-Object -Property Count -Descending
Count Name
----- ----
365 .xml
231 .cdxml
197
169 .ps1xml
142 .txt
114 .psd1
63 .psm1
49 .xsd
36 .dll
15 .mfl
15 .mof
...
2. példa: Egész számok csoportosítása szorzók és párosok szerint
Ez a példa bemutatja, hogyan használhat szkriptblokkokat a tulajdonság paraméter értékeként.
Ez a parancs az 1 és 20 közötti egész számokat jeleníti meg, esélyek és párosak szerint csoportosítva.
1..20 | Group-Object -Property {$_ % 2}
Count Name Group
----- ---- -----
10 1 {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}
10 0 {2, 4, 6, 8, 10, 12, 14, 16, 18, 20}
3. példa: Eseménynapló-események csoportosítása EntryType szerint
Ezek a parancsok a Rendszer eseménynaplójának 1000 legutóbbi bejegyzését jelenítik meg, EntryTypeszerint csoportosítva.
A kimenetben a Darabszám oszlop az egyes csoportok bejegyzéseinek számát, a Név oszlop a csoportot definiáló EventType értékeket, a Csoport oszlop pedig az egyes csoportok objektumait jelöli.
Get-WinEvent -LogName System -MaxEvents 1000 | Group-Object -Property LevelDisplayName
Count Name Group
----- ---- -----
153 Error {System.Diagnostics.Eventing.Reader.EventLogRecord, System.Diagnostics.�
722 Information {System.Diagnostics.Eventing.Reader.EventLogRecord, System.Diagnostics.�
125 Warning {System.Diagnostics.Eventing.Reader.EventLogRecord, System.Diagnostics.�
4. példa: Folyamatok csoportosítása prioritási osztály szerint
Ez a példa az NoElement paraméter hatását mutatja be. Ezek a parancsok prioritási osztály szerint csoportosítják a számítógépen lévő folyamatokat.
Az első parancs a Get-Process parancsmaggal szerzi be a folyamatokat a számítógépen.
Egy folyamatkezelő | használatával küldi el az eredményeket Group-Object, amely a folyamat PriorityClass tulajdonsága alapján csoportosítja az objektumokat.
A második parancs megegyezik az első paranccsal, azzal a kivételével, hogy a NoElement paraméter használatával távolítja el a csoport tagjait a kimenetből. Az eredmény egy olyan tábla, amely csak a darabszám és a tulajdonságérték nevét tartalmazza.
Az eredmények az alábbi mintakimenetben jelennek meg.
Get-Process | Group-Object -Property PriorityClass
Count Name Group
----- ---- -----
55 Normal {System.Diagnostics.Process (AdtAgent), System.Diagnosti...
1 {System.Diagnostics.Process (Idle)}
3 High {System.Diagnostics.Process (Newproc), System.Diagnostic...
2 BelowNormal {System.Diagnostics.Process (winperf),
Get-Process | Group-Object -Property PriorityClass -NoElement
Count Name
----- ----
55 Normal
1
3 High
2 BelowNormal
5. példa: Folyamatok csoportosítása név szerint
Az alábbi példa Group-Object használ a helyi számítógépen futó folyamatok több példányára.
Get-Process | Group-Object -Property Name -NoElement | Where {$_.count -gt 1}
Count Name
----- ----
2 csrss
5 svchost
2 winlogon
2 wmiprvse
8. példa: Objektumok csoportosítása kivonattáblában
Ez a példa a AsHashTable és AsString paraméterekkel adja vissza a csoportokat egy kivonattáblában, azaz kulcs-érték párok gyűjteményeként.
Az eredményként kapott kivonattáblában minden tulajdonságérték egy kulcs, a csoportelemek pedig az értékek. Mivel minden kulcs a kivonattábla objektumának tulajdonsága, pont jelöléssel megjelenítheti az értékeket.
Az első parancs lekéri a Get és Set parancsmagokat a munkamenetben, ige szerint csoportosítja őket, kivonattáblaként adja vissza a csoportokat, és menti a kivonattáblát a $A változóban.
A második parancs megjeleníti a kivonattáblát a $A.
Két kulcs-érték pár van, egy a Get parancsmagokhoz, egy pedig a Set parancsmagokhoz.
A harmadik parancs pont jelölést használ a Get key in $Aértékeinek megjelenítéséhez.
Az értékek CmdletInfo objektum.
A AsString paraméter nem konvertálja a csoportok objektumait sztringekké.
$A = Get-Command get-*, set-* -CommandType cmdlet | Group-Object -Property verb -AsHashTable -AsString
$A
Name Value
---- -----
Get {Get-PSCallStack, Get-PSBreakpoint, Get-PSDrive, Get-PSSession...}
Set {Set-Service, Set-StrictMode, Set-PSDebug, Set-PSSessionConfiguration...}
$A.get
CommandType Name Definition
----------- ---- ----------
Cmdlet Get-PSCallStack Get-PSCallStack [-Verbose] [-Debug] [-ErrorAction <ActionPrefer...
Cmdlet Get-PSBreakpoint Get-PSBreakpoint [[-Id] <Int32[]>] [-Verbose] [-Debug] [-ErrorA...
Cmdlet Get-PSDrive Get-PSDrive [[-Name] <String[]>] [-Scope <String>] [-PSProvider...
...
Paraméterek
-AsHashTable
Azt jelzi, hogy ez a parancsmag kivonattáblázatként adja vissza a csoportot. A kivonattábla kulcsai azok a tulajdonságértékek, amelyek alapján az objektumok csoportosítva vannak. A kivonattábla értékei azok az objektumok, amelyek rendelkeznek ezzel a tulajdonságértékel.
A AsHashTable paraméter önmagában minden olyan kivonattáblát ad vissza, amelyben minden kulcs a csoportosított objektum egy-egy példánya. Ha a AsString paraméterrel használja, a kivonattáblában szereplő kulcsok sztringek.
Paramétertulajdonságok
| Típus: | SwitchParameter |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
| Aliasok: | AHT |
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 |
-AsString
Azt jelzi, hogy ez a parancsmag sztringekké alakítja a kivonattáblázat kulcsait. Alapértelmezés szerint a kivonattáblakulcsok a csoportosított objektum példányai. Ez a paraméter csak akkor érvényes, ha az AsHashTable paraméterrel használja.
Paramétertulajdonságok
| Típus: | SwitchParameter |
| 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: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-CaseSensitive
Azt jelzi, hogy ez a parancsmag megkülönbözteti a csoportosítási kis- és nagybetűket. Ezen paraméter nélkül a csoport objektumainak tulajdonságértékei eltérő eseteket tartalmazhatnak.
Paramétertulajdonságok
| Típus: | SwitchParameter |
| 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: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-Culture
Meghatározza a sztringek összehasonlítása során használni kívánt kultúrát.
Paramétertulajdonságok
| Típus: | String |
| 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: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-InputObject
Megadja a csoportosítandó objektumokat. Adjon meg egy változót, amely tartalmazza az objektumokat, vagy írjon be egy parancsot vagy kifejezést, amely lekéri az objektumokat.
Ha a InputObject paraméterrel küldi el az objektumgyűjteményt Group-Object, Group-Object kap egy objektumot, amely a gyűjteményt jelöli.
Ennek eredményeképpen egyetlen csoportot hoz létre az objektummal tagként.
Ha csoportosítani szeretné az objektumokat egy gyűjteményben, az objektumokat a Group-Object.
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 |
-NoElement
Azt jelzi, hogy ez a parancsmag kihagyja egy csoport tagjait az eredményekből.
Paramétertulajdonságok
| Típus: | SwitchParameter |
| 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: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-Property
Megadja a csoportosítás tulajdonságait. Az objektumok csoportokba vannak rendezve a megadott tulajdonság értéke alapján.
A tulajdonság paraméter értéke új számított tulajdonság lehet. Számított tulajdonság létrehozásához hozzon létre egy kivonattáblát egy Kifejezés kulccsal, amely sztring- vagy szkriptblokkértéket határoz meg.
Paramétertulajdonságok
| Típus: | Object[] |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | 0 |
| 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
Bármilyen objektumot becsúszthat Group-Object.
Kimenetek
Microsoft.PowerShell.Commands.GroupInfo or System.Collections.Hashtable
Ha a AsHashTable paramétert használja, Group-Object egy kivonattáblát ad vissza.
Ellenkező esetben egy GroupInfo objektumot ad vissza.
Jegyzetek
A formázási parancsmagok (például és
Format-Table)Format-Listparaméterével is csoportosíthatja az objektumokat. EllentétbenGroup-Object, amely egyetlen táblát hoz létre minden tulajdonságértékhez egy sortal, a GroupBy paraméterek létrehoznak egy táblát minden tulajdonságértékhez egy sortal minden olyan elemhez, amely rendelkezik a tulajdonságértékkel.Group-Objectnem követeli meg, hogy a csoportosított objektumok a Microsoft .NET-keretrendszer típusával azonosak legyenek. Ha különböző .NET-keretrendszer típusú objektumokat csoportosít,Group-Objecta következő szabályokat használja:Azonos tulajdonságnevek és -típusok. Ha az objektumoknak van egy megadott nevű tulajdonsága, és a tulajdonságértékek ugyanazzal a .NET-keretrendszertípussal rendelkeznek, a tulajdonságértékek az azonos típusú objektumokhoz használt szabályok szerint vannak csoportosítva.
Azonos tulajdonságnevek, különböző típusok. Ha az objektumoknak van egy megadott nevű tulajdonsága, de a tulajdonságértékek eltérő .NET-keretrendszertípussal rendelkeznek különböző objektumokban,
Group-Objecta tulajdonság első előfordulásának .NET-keretrendszertípusát használja a tulajdonságcsoport .NET-keretrendszertípusaként. Ha egy objektum egy másik típusú tulajdonsággal rendelkezik, a tulajdonság értéke az adott csoport típusává lesz konvertálva. Ha a típusátalakítás sikertelen, az objektum nem szerepel a csoportban.Hiányzó tulajdonságok. A megadott tulajdonságot nem tartalmazó objektumok csoportosíthatatlannak minősülnek. A csoportosíthatatlan objektumok az utolsó GroupInfo objektumkimenetben jelennek meg egy
AutomationNull.Valuenevű csoportban.