A InfoWiki wikiből
Tartalomjegyzék |
Select-Object
A Select-Object - tel megtekinthetjük egy parancs - cmdlet (commandlet) - eredményeként létrejött objektum (vagy objektumok) különböző tulajdonságait (property-jeit). (Egyszerűbben: milyen oszlopok látszódjanak)
A Select-Object - et csak másik cmdlettel tudjuk használni, mivel kell, hogy legyen bemenő paramétere amin elvégzi a szelektálást.
Szintaktika
Select-Object [[-property] <Object[]>] [-excludeProperty <string[]>] [-expandProperty <string>] [-first <int>] [-last <int>] [-unique] [-inputObject <psobject>] [<CommonParameters>]
A Select-Object hosszas leírása helyett használhatjuk a rövidebb, beépített aliast is, ami frappáns módon a következő: select
Példák
A következő példában a -property azt mondja meg a Select-Object - nek, hogy most a tulajdonság(ok) következnek ami(k) alapján mutasd az eredményt. Elhagyható.
Get-ChildItem | Select-Object -property Name, Length
Kimenet:
Mint látható, a példán meghívom a Get-ChildItem cmdletet (aminek alapértelmezett esetben sok propertyje van - LastWriteTime, Mode, stb...), majd csővezeték (pipeline - "|" <--- ez a függőleges kis vonal) segítségével átadom az eredményt a Select-Object - nek.
Tovább fokozhatjuk az élvezeteket ha ezt az egészet még a Sort-Object - nek is átadjuk...
Get-ChildItem | Select-Object -property Name, Length | Sort-Object Name
...ami rendezni fogja Name szerint ABC (növekvő) sorrendbe az elemeket. Beállíthattuk volna, hogy csökkenőben rendezze a -descending kapcsolóval, de erről bővebben a Sort-Object - nél.
Íme egy példa arra, ha nem szeretnénk látni az összes sort hanem csak az első vagy utolsó 5 - öt:
Get-ChildItem | Select-Object Name -first 5 | Sort-Object Name
itt a -first helyett nyugodtan írhatunk -last - ot is. De vigyázzunk! A fenti példa először kiválasztja az első öt sort (rendezetlen) és csak utána sorrendezi őket. Szóval ha a név szerint rendezett első 3 állományunkat akarjuk látni akkor a
Get-ChildItem | Sort-Object Name | Select-Object Name -first 3
parancsot kell kiadnunk, tehát először rendezzünk.
A Select-Object a Sort-Object - tel és a Where-Object - tel használható igazán jól.
Egyéb
A Select-Object arra is képes, hogy kiszűrje az ismétlődő bemeneteket, és belőlük csak egyet adjon vissza. Ez azt jelenti, hogy unique...
PS C:\> "alma", "banan", "alma", "fu", "fu" | Select-Object -unique
Ez annyit tesz, hogy kiírja egymás alá: alma banan fu
PS C:\> "a", "b", "c", "a", "b", 1, 2, 2, 3, 1, 4 | Select-Object -unique
És mint ahogy várt az eredmény:
Ezek így nem tűnhetnek túl értelmesnek, viszont ha egy másik parancs eredményeként létrejött objektumok között nem szeretnénk ismétlődést látni, úgy már lehet, hogy van értelme.
Forrás
Deme Istvan