Sort-Object
Objektumok rendezése tulajdonságértékek szerint.
Syntax
Sort-Object
[-Stable]
[-Descending]
[-Unique]
[-InputObject <PSObject>]
[[-Property] <Object[]>]
[-Culture <String>]
[-CaseSensitive]
[<CommonParameters>]
Sort-Object
[-Descending]
[-Unique]
-Top <Int32>
[-InputObject <PSObject>]
[[-Property] <Object[]>]
[-Culture <String>]
[-CaseSensitive]
[<CommonParameters>]
Sort-Object
[-Descending]
[-Unique]
-Bottom <Int32>
[-InputObject <PSObject>]
[[-Property] <Object[]>]
[-Culture <String>]
[-CaseSensitive]
[<CommonParameters>]
Description
A Sort-Object
parancsmag növekvő vagy csökkenő sorrendben rendezi az objektumokat az objektumtulajdonságok értékei alapján. Ha a rendezési tulajdonságok nem szerepelnek a parancsokban, a PowerShell az első bemeneti objektum alapértelmezett rendezési tulajdonságait használja. Ha a bemeneti objektum típusa nem rendelkezik alapértelmezett rendezési tulajdonságokkal, a PowerShell megpróbálja összehasonlítani az objektumokat. További információkért lásd a Jegyzetek szakaszt.
Az objektumokat egyetlen vagy több tulajdonság szerint rendezheti. Több tulajdonság kivonattáblákkal növekvő sorrendben, csökkenő sorrendben vagy rendezési sorrendben rendezhető. A tulajdonságok kis- és nagybetűk megkülönböztetése vagy érzéketlenként vannak rendezve. Az Egyedi paraméter használatával eltávolíthatja az ismétlődéseket a kimenetből.
Példák
1. példa: Az aktuális könyvtár rendezése név szerint
Ez a példa egy könyvtár fájljait és alkönyvtárait rendezi.
Get-ChildItem -Path C:\Test | Sort-Object
Directory: C:\Test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2/13/2019 08:55 26 anotherfile.txt
-a---- 2/13/2019 13:26 20 Bfile.txt
-a---- 2/12/2019 15:40 118014 Command.txt
-a---- 2/1/2019 08:43 183 CreateTestFile.ps1
d----- 2/25/2019 18:25 Files
d----- 2/25/2019 18:24 Logs
-ar--- 2/12/2019 14:31 27 ReadOnlyFile.txt
-a---- 2/12/2019 16:24 23 Zsystemlog.log
A Get-ChildItem
parancsmag lekéri a fájlokat és alkönyvtárakat az Elérési út paraméter által megadott könyvtárból. C:\Test
A rendszer elküldi az objektumokat a folyamatnak a Sort-Object
parancsmagnak.
Sort-Object
nem ad meg tulajdonságot, így a kimenet az alapértelmezett rendezési tulajdonság, a Név szerint van rendezve.
2. példa: Az aktuális könyvtár rendezése fájlhossz szerint
Ez a parancs növekvő sorrendben jeleníti meg az aktuális könyvtár fájljait.
Get-ChildItem -Path C:\Test -File | Sort-Object -Property Length
Directory: C:\Test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2/13/2019 13:26 20 Bfile.txt
-a---- 2/12/2019 16:24 23 Zsystemlog.log
-a---- 2/13/2019 08:55 26 anotherfile.txt
-ar--- 2/12/2019 14:31 27 ReadOnlyFile.txt
-a---- 2/1/2019 08:43 183 CreateTestFile.ps1
-a---- 2/12/2019 15:40 118014 Command.txt
A Get-ChildItem
parancsmag lekéri a fájlokat az Elérési út paraméter által megadott könyvtárból.
A Fájl paraméter azt adja meg, hogy Get-ChildItem
csak a fájlobjektumok lesznek lekérve. A rendszer elküldi az objektumokat a folyamatnak a Sort-Object
parancsmagnak. Sort-Object
A Hossz paraméterrel növekvő sorrendben rendezheti a fájlokat hossz szerint.
3. példa: Folyamatok rendezése memóriahasználat szerint
Ez a példa a legnagyobb memóriahasználattal rendelkező folyamatokat jeleníti meg a munkakészlet (WS) mérete alapján.
Get-Process | Sort-Object -Property WS | Select-Object -Last 5
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
136 193.92 217.11 889.16 87492 8 OUTLOOK
112 347.73 297.02 95.19 106908 8 Teams
206 266.54 323.71 37.17 60620 8 MicrosoftEdgeCP
35 552.19 549.94 131.66 6552 8 Code
0 1.43 595.12 0.00 2780 0 Memory Compression
A Get-Process
parancsmag lekéri a számítógépen futó folyamatok listáját. A folyamatobjektumok le lesznek küldve a folyamaton a Sort-Object
parancsmagnak. Sort-Object
A Tulajdonság paraméter használatával rendezi az objektumokat WS szerint. A rendszer elküldi az objektumokat a folyamatnak a Select-Object
parancsmagnak.
Select-Object
Az Utolsó paraméterrel adja meg az utolsó öt objektumot, amelyek a legmagasabb WS-használattal rendelkező objektumok.
A PowerShell 6-ban az Sort-Object
Bottom paraméter alternatíva a .Select-Object
Például: Get-Process | Sort-Object -Property WS -Bottom 5
.
4. példa: HistoryInfo-objektumok rendezése azonosító szerint
Ez a parancs az Id tulajdonsággal rendezi a PowerShell-munkamenet HistoryInfo objektumait. Minden PowerShell-munkamenetnek saját parancselőzményei vannak.
Get-History | Sort-Object -Property Id -Descending
Id CommandLine
-- -----------
10 Get-Command Sort-Object -Syntax
9 $PSVersionTable
8 Get-Command Sort-Object -Syntax
7 Get-Command Sort-Object -ShowCommandInfo
6 Get-ChildItem -Path C:\Test | Sort-Object -Property Length
5 Get-Help Clear-History -online
4 Get-Help Clear-History -full
3 Get-ChildItem | Get-Member
2 Get-Command Sort-Object -Syntax
1 Set-Location C:\Test\
A Get-History
parancsmag lekéri az előzményobjektumokat az aktuális PowerShell-munkamenetből. A rendszer elküldi az objektumokat a folyamatnak a Sort-Object
parancsmagnak. Sort-Object
A Tulajdonság paraméter használatával rendezi az objektumokat azonosító szerint. A csökkenő paraméter a parancselőzményeket a legújabbtól a legrégebbiig rendezi.
5. példa: A tulajdonságok növekvő és csökkenő sorrendbe rendezése kivonattáblával
Ez a példa két tulajdonságot használ az objektumok, az Állapot és a DisplayName rendezéséhez. Az állapot csökkenő sorrendben, a DisplayName pedig növekvő sorrendben van rendezve.
A rendszer kivonattáblát használ a tulajdonságparaméter értékének megadásához. A kivonattábla kifejezéssel adja meg a tulajdonságneveket és a rendezési sorrendeket. További információ a kivonattáblákról: about_Hash_Tables.
A kivonattáblában használt Állapot tulajdonság egy számba vett tulajdonság. További információ: ServiceControllerStatus.
Get-Service |
Sort-Object -Property @{Expression = "Status"; Descending = $true},
@{Expression = "DisplayName"; Descending = $false}
Status Name DisplayName
------ ---- -----------
Running Appinfo Application Information
Running BthAvctpSvc AVCTP service
Running BrokerInfrastru... Background Tasks Infrastructure Ser...
Running BDESVC BitLocker Drive Encryption Service
Running CoreMessagingRe... CoreMessaging
Running VaultSvc Credential Manager
Running DsSvc Data Sharing Service
Running Dhcp DHCP Client
...
Stopped ALG Application Layer Gateway Service
Stopped AppMgmt Application Management
Stopped BITS Background Intelligent Transfer Ser...
Stopped wbengine Block Level Backup Engine Service
Stopped BluetoothUserSe... Bluetooth User Support Service_14fb...
Stopped COMSysApp COM+ System Application
Stopped smstsmgr ConfigMgr Task Sequence Agent
Stopped DeviceInstall Device Install Service
Stopped MSDTC Distributed Transaction Coordinator
A Get-Service
parancsmag lekéri a számítógépen található szolgáltatások listáját. A szolgáltatásobjektumok le lesznek küldve a folyamatról a Sort-Object
parancsmagnak. Sort-Object
A Tulajdonság paraméter egy kivonattáblával adja meg a tulajdonságneveket és a rendezési sorrendeket. A Tulajdonság paraméter két tulajdonság szerint van rendezve, az Állapot csökkenő sorrendben, a DisplayName pedig növekvő sorrendben.
Az állapot egy számbavételi tulajdonság. A leállított érték 1 , a Futtatás értéke pedig 4. A csökkenő paraméter úgy van beállítva$True
, hogy a futó folyamatok a leállított folyamatok előtt jelenjenek meg. A DisplayName a csökkenő paramétert úgy állítja be, hogy $False
betűrendbe rendezze a megjelenített neveket.
6. példa: Szövegfájlok rendezése időtartomány szerint
Ez a parancs csökkenő sorrendben rendezi a szövegfájlokat a CreationTime és a LastWriteTime közötti időtartomány szerint.
Get-ChildItem -Path C:\Test\*.txt |
Sort-Object -Property {$_.CreationTime - $_.LastWriteTime} |
Format-Table CreationTime, LastWriteTime, FullName
CreationTime LastWriteTime FullName
------------ ------------- --------
11/21/2018 12:39:01 2/26/2019 08:59:36 C:\Test\test2.txt
12/4/2018 08:29:41 2/26/2019 08:57:05 C:\Test\powershell_list.txt
2/20/2019 08:15:59 2/26/2019 12:09:43 C:\Test\CreateTestFile.txt
2/20/2019 08:15:59 2/26/2019 12:07:41 C:\Test\Command.txt
2/20/2019 08:15:59 2/26/2019 08:57:52 C:\Test\ReadOnlyFile.txt
11/29/2018 15:16:50 12/4/2018 16:16:24 C:\Test\LogData.txt
2/25/2019 18:25:11 2/26/2019 12:08:47 C:\Test\Zsystemlog.txt
2/25/2019 18:25:11 2/26/2019 08:55:33 C:\Test\Bfile.txt
2/26/2019 08:46:59 2/26/2019 12:12:19 C:\Test\LogFile3.txt
A Get-ChildItem
parancsmag a Path paraméter használatával adja meg a könyvtárat C:\Test
és az *.txt
összes fájlt. A rendszer elküldi az objektumokat a folyamatnak a Sort-Object
parancsmagnak.
Sort-Object
A Tulajdonság paraméter egy szkriptblokk használatával határozza meg a Létrehozási idő és a LastWriteTime közötti egyes fájlok időtartamát.
7. példa: Nevek rendezése szövegfájlban
Ez a példa bemutatja, hogyan rendezhet egy listát egy szövegfájlból. Az eredeti fájl rendezetlen listaként jelenik meg. Sort-Object
rendezi a tartalmat, majd rendezi a tartalmat az Ismétlődő elemeket eltávolító Egyedi paraméterrel.
# All items unsorted
Get-Content -Path C:\Test\ServerNames.txt
localhost
server01
server25
LOCALHOST
Server19
server3
localhost
# All items sorted
Get-Content -Path C:\Test\ServerNames.txt | Sort-Object
localhost
LOCALHOST
localhost
server01
Server19
server25
server3
# Unique filtered items sorted
Get-Content -Path C:\Test\ServerNames.txt | Sort-Object -Unique
localhost
server01
Server19
server25
server3
A Get-Content
parancsmag az Elérési út paraméter használatával adja meg a könyvtárat és a fájlnevet. A fájl ServerNames.txt
a számítógépnevek nem válogatott listáját tartalmazza.
A Get-Content
parancsmag az Elérési út paraméter használatával adja meg a könyvtárat és a fájlnevet. A fájl ServerNames.txt
a számítógépnevek nem válogatott listáját tartalmazza. A rendszer elküldi az objektumokat a folyamatnak a Sort-Object
parancsmagnak. Sort-Object
A listát az alapértelmezett sorrendben, növekvő sorrendben rendezi.
A Get-Content
parancsmag az Elérési út paraméter használatával adja meg a könyvtárat és a fájlnevet. A fájl ServerNames.txt
a számítógépnevek nem válogatott listáját tartalmazza. A rendszer elküldi az objektumokat a folyamatnak a Sort-Object
parancsmagnak. Sort-Object
az Egyedi paraméter használatával távolítja el az ismétlődő számítógépneveket. A lista az alapértelmezett sorrendben, növekvő sorrendben van rendezve.
8. példa: Sztring rendezése egész számként
Ez a példa bemutatja, hogyan rendezhet egy sztringobjektumokat egész számként tartalmazó szövegfájlt. Az egyes parancsokat elküldheti a folyamatnak Get-Member
, és ellenőrizheti, hogy az objektumok sztringek-e egész számok helyett. Ezekben a példákban a fájl a ProductId.txt
termékszámok nem válogatott listáját tartalmazza.
Az első példában lekéri a fájl tartalmát és Get-Content
a csövek sorait a Sort-Object
parancsmaghoz. Sort-Object
A sztringobjektumokat növekvő sorrendbe rendezi.
# String sorted
Get-Content -Path C:\Test\ProductId.txt | Sort-Object
0
1
12345
1500
2
2800
3500
4100
500
6200
77
88
99999
# Integer sorted
Get-Content -Path C:\Test\ProductId.txt | Sort-Object {[int]$_}
0
1
2
77
88
500
1500
2800
3500
4100
6200
12345
99999
A második példában lekéri a fájl tartalmát és Get-Content
a csövek sorait a Sort-Object
parancsmaghoz. Sort-Object
a sztringek egész számmá alakításához szkriptblokkot használ. A mintakódban a sztringet egész számmá alakítja, [int]
és $_
az egyes sztringeket jelöli a folyamat során. Az egész szám objektumokat a rendszer elküldi a folyamatnak a Sort-Object
parancsmagnak.
Sort-Object
Számsorrendbe rendezi az egész szám objektumait.
9. példa: Stabil rendezés használata
A Top, Bottom vagy Stable paraméterek használatakor a rendszer a rendezett objektumokat abban a sorrendben kézbesíti, amelyben Sort-Object
a rendezési feltételek egyenlőek. Ebben a példában a számokat 1–20-ig rendezzük a "modulo 3" értékük szerint. A modulo értéke nullától kettőig terjed.
1..20 |Sort-Object {$_ % 3}
18
3
15
6
12
9
1
16
13
10
7
4
19
11
8
14
5
17
2
20
1..20 |Sort-Object {$_ % 3} -Stable
3
6
9
12
15
18
1
4
7
10
13
16
19
2
5
8
11
14
17
20
Az első rendezés kimenete megfelelően van csoportosítva a modulus értéke szerint, de az egyes elemek nem a modulustartományon belül rendezve. A második rendezés a Stabil beállítással ad vissza egy stabil rendezést.
10. példa: Rendezés több tulajdonság szerint
Ha több tulajdonság szerint szeretne rendezni, vesszővel válassza el a tulajdonságokat.
Get-ChildItem -Path C:\Test | Sort-Object Length,Name
Directory: C:\Test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 13/10/2021 22:16 2 File01.txt
-a--- 13/10/2021 22:16 2 File03.txt
-a--- 13/10/2021 22:18 64 File02.txt
-a--- 13/10/2021 22:18 64 File04.txt
A Get-ChildItem
parancsmag lekéri a fájlokat az Elérési út paraméter által megadott könyvtárból.
A rendszer elküldi az objektumokat a folyamatnak a Sort-Object
parancsmagnak. Sort-Object
A Hossz és a Név paraméterrel növekvő sorrendben rendezheti a fájlokat hossz szerint. File03.txt
Mivel File01.txt
ugyanolyan hosszúságúak, a név tulajdonságuk szerint rendezik őket tovább.
11. példa: Kivonattáblák rendezése kulcsérték szerint
A PowerShell 6-tól Sort-Object
kezdve támogatja a kivonatoló bemenetek kulcsértékek szerinti rendezését. Az alábbi példa a kivonatolók tömbjét rendezi az egyes kivonatolókulcsok weight
értéke alapján.
@(
@{ name = 'a' ; weight = 7 }
@{ name = 'b' ; weight = 1 }
@{ name = 'c' ; weight = 3 }
@{ name = 'd' ; weight = 7 }
) | Sort-Object -Property weight -OutVariable Sorted
$Sorted | ForEach-Object -Process { "{0}: {1}" -f $_.name, $_.weight }
Name Value
---- -----
Weight 1
Name b
Weight 3
Name c
Weight 7
Name a
Weight 7
Name d
b: 1
c: 3
a: 7
d: 7
Paraméterek
-Bottom
Megadja a rendezett objektumtömb végéről lekérendő objektumok számát. Ez stabil rendezést eredményez.
Ezt a paramétert a PowerShell 6.0-ban vezettük be.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CaseSensitive
Azt jelzi, hogy a rendezés megkülönbözteti a kis- és nagybetűket. Alapértelmezés szerint a rendezés nem megkülönbözteti a kis- és nagybetűket.
Type: | SwitchParameter |
Position: | Named |
Default value: | Case-insensitive |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Culture
Megadja a rendezéshez használandó kulturális konfigurációt. A rendszer kulturális konfigurációjának megjelenítésére használható Get-Culture
.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Descending
Azt jelzi, hogy Sort-Object
az objektumok csökkenő sorrendben lesznek rendezve. Az alapértelmezett érték növekvő sorrend.
Ha több tulajdonságot szeretne rendezni különböző rendezési sorrendekkel, használjon kivonattáblát. Egy kivonattáblával például egy tulajdonságot növekvő sorrendbe, egy másik tulajdonságot pedig csökkenő sorrendbe rendezhet.
Type: | SwitchParameter |
Position: | Named |
Default value: | Ascending |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Az objektumok rendezéséhez küldje el őket a folyamatba Sort-Object
. Ha az InputObject paraméterrel küld el egy elemgyűjteményt, kap egy objektumot, Sort-Object
amely a gyűjteményt jelöli. Mivel egy objektum nem rendezhető, Sort-Object
a teljes gyűjteményt változatlanul adja vissza.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Property
Megadja az objektumok rendezéséhez használt tulajdonságneveket Sort-Object
. Helyettesítő karakterek használata engedélyezett.
Az objektumok a tulajdonságértékek alapján vannak rendezve. Ha nem ad meg tulajdonságot, Sort-Object
a rendezés az objektumtípus vagy maguk az objektumok alapértelmezett tulajdonságai alapján történik.
Több tulajdonság elkülönítéséhez használjon vesszőt. Több tulajdonság is rendezhető növekvő sorrendben, csökkenő sorrendben vagy rendezési sorrendek kombinációjában. Ha több tulajdonságot ad meg, az objektumokat az első tulajdonság rendezi. Ha több objektum értéke megegyezik az első tulajdonságéval, akkor a rendszer ezeket az objektumokat a második tulajdonság szerint rendezi. Ez a folyamat addig folytatódik, amíg nincs több megadott tulajdonság vagy objektumcsoport.
A tulajdonságparaméter értéke számított tulajdonság lehet. Számított tulajdonság létrehozásához használjon szkriptblokkot vagy kivonatolót.
A kivonattáblák érvényes kulcsai a következők:
expression
-<string>
vagy<script block>
ascending
vagydescending
-<boolean>
További információ: about_Calculated_Properties.
Type: | Object[] |
Position: | 0 |
Default value: | Default properties |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Stable
A rendszer a rendezési feltételek egyenlősége esetén a kapott sorrendben kézbesíti a rendezett objektumokat.
Ez a paraméter a PowerShell 6.2.0-s verzióban lett hozzáadva.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Top
A rendezett objektumtömb kezdetétől lekérendő objektumok számát adja meg. Ez stabil rendezést eredményez.
Ezt a paramétert a PowerShell 6.0-ban vezettük be.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Unique
Azt jelzi, hogy Sort-Object
nem ismétlődik, és csak a gyűjtemény egyedi tagjait adja vissza. Az egyedi érték első példánya szerepel a rendezett kimenetben.
Az egyedi kis- és nagybetűk nem érzékenyek. Azok a sztringek, amelyek csak karakteres esetenként különböznek, azonosnak minősülnek. Például karakter és KARAKTER.
Type: | SwitchParameter |
Position: | Named |
Default value: | All |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Bevitelek
A rendezendő objektumokat erre a parancsmagra csövezheti.
Kimenetek
Ez a parancsmag a rendezett objektumokat adja vissza.
Jegyzetek
A PowerShell a következő aliasokat Sort-Object
tartalmazza:
- Windows:
sort
A Sort-Object
parancsmag a parancsban megadott tulajdonságok vagy az objektumtípus alapértelmezett rendezési tulajdonságai alapján rendezi az objektumokat. Az alapértelmezett rendezési tulajdonságok a PropertySet
fájlban types.ps1xml
szereplő névvel DefaultKeyPropertySet
vannak definiálva. További információ: about_Types.ps1xml.
Ha egy objektum nem rendelkezik a megadott tulajdonságok egyikével, az objektum tulajdonságértékét Null értékként Sort-Object
értelmezi a rendszer, és a rendezési sorrend végén helyezi el.
Ha nem érhetők el rendezési tulajdonságok, a PowerShell megpróbálja összehasonlítani az objektumokat.
Sort-Object
A Compare metódust használja az egyes tulajdonságokhoz. Ha egy tulajdonság nem implementálja az IComparable függvényt, a parancsmag sztringgé alakítja a tulajdonságértéket, és a System.String Compare metódusát használja. További információ: PSObject.CompareTo(Object) metódus.
Ha egy számbavételi tulajdonság (például Állapot) alapján rendez, Sort-Object
az enumerálási értékek szerint rendez. Windows-szolgáltatások esetén a Leállítva értéke 1, a Futtatás értéke pedig 4.
A leállított értékeket a rendszer a futtatás előtt rendezi a számbavételi értékek miatt. További információ: ServiceControllerStatus.
Stabil rendezés esetén a rendezési algoritmus teljesítménye lassabb.
Kapcsolódó hivatkozások
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: