valitsee objektit tai objektin ominaisuudet.
syntaksi
Select-Object >]
Select-Object >]
kuvaus
Select-Object
cmdlet valitsee objektin tai oliojoukon määritellyt ominaisuudet. Se voi myösvalita uniikkeja esineitä, tietyn määrän esineitä tai tietyssä asemassa olevia esineitä.
valitaksesi esineitä kokoelmasta, käytä ensimmäistä, viimeistä, uniikkia, Skippiä ja Index-parametreja. Jos haluat valita kohteen ominaisuudet, Käytä Ominaisuusparametria. Kun valitset ominaisuudet, Select-Object
palauttaa uudet objektit, joilla on vain määritellyt ominaisuudet.
Windows PowerShell 3.0: ssa alkava Select-Object
sisältää optimointiominaisuuden, joka estää kommandoja luomasta ja käsittelemästä objekteja, joita ei käytetä.
kun sisällytät Select-Object
komennon, jossa on ensimmäiset tai Indeksiparametrit komentojonossa, PowerShell pysäyttää komennon, joka luo objektit heti, kun valittu määrä objecteja on luotu, myös silloin, kun objektit luova komento ilmestyy ennenSelect-Object
komennon putkessa. Voit sammuttaa tämän optimoimalla käyttäytymistä, käytä Waitparametri.
Examples
Example 1: Select objects by property
tässä esimerkissä luodaan objekteja, joilla on prosessiobjektien nimi -, ID-ja työjoukon (ws) ominaisuudet.
Get-Process | Select-Object -Property ProcessName, Id, WS
Esimerkki 2: valitse objektit ominaisuuden mukaan ja formatoi tulokset
Tämä esimerkki saa tietoa tietokoneen prosessien käyttämistä moduuleista. Se käyttääGet-Process
cmdlet saadakseen prosessin tietokoneelle.
se käyttää Select-Object
cmdlet tulostaa joukon instanssit sisältäen kunkin
System.Diagnostics.Process
instanceoutput by Get-Process
.
Select-Object
cmdlet valitsee prosessin nimet. Tämä lisääProcessName
NoteProperty jokaiseen instanssiin ja populatesitiin nykyisen prosessin ProcessName-ominaisuuden arvon.
lopuksi Format-List
cmdletiä käytetään näyttämään kunkin prosessin nimi ja moduulit luettelossa.
esimerkki 3: Valitse eniten muistia käyttävät prosessit
Tämä esimerkki saa viisi eniten muistia käyttävää prosessia. Get-Process
cmdlet saavat prosessit tietokoneeseen. Sort-Object
cmdlet lajittelee prosessit muistin(työjoukon) käytön mukaan, ja Select-Object
cmdlet valitsee vain viisi viimeistä oliojoukon jäsentä.
Odotusparametria ei vaadita komennoissa, jotka sisältävät Sort-Object
cmdlet, koskaSort-Object
käsittelee kaikki oliot ja palauttaa sitten kokoelman. Select-Object
optimization on käytettävissä vain komennoille, jotka palauttavat objektit yksittäin niitä käsiteltäessä.
esimerkki 4: Valitse ainutlaatuiset merkit ryhmästä
tässä esimerkissä käytetään ainutlaatuista parametria Select-Object
saadakseen ainutlaatuisia merkkejä arrayof-merkistöstä.
"a","b","c","a","a","a" | Select-Object -Uniqueabc
esimerkki 5: Valitse uusimmat ja vanhimmat tapahtumat tapahtumalokissa
Tämä esimerkki saa ensimmäiset (uusimmat) ja viimeiset (vanhimmat) tapahtumat Windowsin PowerShell-tapahtumalokissa.
Get-EventLog
saa kaikki tapahtumat Windowsin PowerShell-lokiin ja tallentaa ne $a
muuttuja.Tämän jälkeen $a
johdetaan Select-Object
cmdlet. Select-Object
komento käyttää Indexparametriä valitakseen tapahtumia $a
muuttujan tapahtumien joukosta. Ensimmäisen jakson indeksi on 0. Viimeisen tapahtuman indeksi on $a
miinus 1.
$a = Get-EventLog -LogName "Windows PowerShell"$a | Select-Object -Index 0, ($A.count - 1)
esimerkki 6: Valitse kaikki paitsi ensimmäinen objekti
Tämä esimerkki luo uuden PSSession jokaiselle palvelimissa luetellulle tietokoneelle.TXT-tiedostot,paitsi ensimmäinen.
Select-Object
valitsee kaikki paitsi ensimmäisen tietokoneen tietokoneiden nimiluettelosta. Tuloksena oleva tietokoneiden luettelo asetetaan New-PSSession
cmdlet-tietokoneen parametrin arvoksi.
New-PSSession -ComputerName (Get-Content Servers.txt | Select-Object -Skip 1)
esimerkki 7: Nimeä tiedostot uudelleen ja valitse useita tarkistaaksesi
Tämä esimerkki lisää ”-ro”-loppuliitteen niiden tekstitiedostojen perusnimiin, joissa on vain luku-attribuutti, ja näyttää sitten viisi ensimmäistä tiedostoa, jotta käyttäjä voi nähdä näytteen efektistä.
Get-ChildItem
käyttää ReadOnly-dynaamista parametria saadakseen vain luku-tiedostoja. Tuloksena oleva tiedosto johdetaan Rename-Item
cmdlet, joka nimeää tiedoston uudelleen. Se käyttääRename-Item
Passthru-parametria lähettääkseen uudelleen nimetyt tiedostot Select-Object
cmdlet, joka valitsee ensimmäiset 5 fordisplay.
Select-Object
Wait-parametri estää Powershellia pysäyttämästä Get-ChildItem
cmdlet saatuaan ensimmäiset viisi vain luettavaa tekstitiedostoa. Ilman tätä parametria vain ensimmäiset viisi vain luettavaa tiedostoa nimettäisiin uudelleen.
Get-ChildItem *.txt -ReadOnly | Rename-Item -NewName {$_.BaseName + "-ro.txt"} -PassThru | Select-Object -First 5 -Wait
esimerkki 8: Demonstroi-ExpandProperty-parametrin koukerot
Tämä esimerkki osoittaa ExpandProperty-parametrin koukerot.
huomaa, että tuotos oli joukko instansseja. Esiintymät vastaavat Tulostusnäkymän standardimuotoilusääntöjä. Tämä pätee kaikkiin laajennettuihin ominaisuuksiin. Jos outputted-kohteilla on tietty vakiomuoto, laajennettu ominaisuus ei välttämättä näy.
# Create a custom object to use for the Select-Object example.$object = @{Name="CustomObject";Expand=@(1,2,3,4,5)}# Use the ExpandProperty parameter to Expand the property.$object | Select-Object -ExpandProperty Expand -Property Name12345# The output did not contain the Name property, but it was added successfully.# Use Get-Member to confirm the Name property was added and populated.$object | Select-Object -ExpandProperty Expand -Property Name | Get-MemberTypeName: System.Int32Name MemberType Definition---- ---------- ----------CompareTo Method int CompareTo(System.Object value), int CompareTo(int value), int IComparable.CompareTo(System.Object obj)...Equals Method bool Equals(System.Object obj), bool Equals(int obj), bool IEquatable.Equals(int other)GetHashCode Method int GetHashCode()GetType Method type GetType()GetTypeCode Method System.TypeCode GetTypeCode(), System.TypeCode IConvertible.GetTypeCode()ToBoolean Method bool IConvertible.ToBoolean(System.IFormatProvider provider)ToByte Method byte IConvertible.ToByte(System.IFormatProvider provider)ToChar Method char IConvertible.ToChar(System.IFormatProvider provider)ToDateTime Method datetime IConvertible.ToDateTime(System.IFormatProvider provider)ToDecimal Method decimal IConvertible.ToDecimal(System.IFormatProvider provider)ToDouble Method double IConvertible.ToDouble(System.IFormatProvider provider)ToInt16 Method int16 IConvertible.ToInt16(System.IFormatProvider provider)ToInt32 Method int IConvertible.ToInt32(System.IFormatProvider provider)ToInt64 Method long IConvertible.ToInt64(System.IFormatProvider provider)ToSByte Method sbyte IConvertible.ToSByte(System.IFormatProvider provider)ToSingle Method float IConvertible.ToSingle(System.IFormatProvider provider)ToString Method string ToString(), string ToString(string format), string ToString(System.IFormatProvider provider)...ToType Method System.Object IConvertible.ToType(type conversionType, System.IFormatProvider provider)ToUInt16 Method uint16 IConvertible.ToUInt16(System.IFormatProvider provider)ToUInt32 Method uint32 IConvertible.ToUInt32(System.IFormatProvider provider)ToUInt64 Method uint64 IConvertible.ToUInt64(System.IFormatProvider provider)Name NoteProperty string Name=CustomObject
esimerkki 9: Luo mukautettuja ominaisuuksia olioille
seuraava esimerkki osoittaa käyttämällä Select-Object
mukautetun ominaisuuden lisäämiseksi mihin tahansa objektiin.Kun määrität ominaisuuden nimen, jota ei ole olemassa, Select-Object
luo kyseisen ominaisuuden anotepropertyksi jokaiselle ohitetulle kohteelle.
esimerkki 10: luo lasketut ominaisuudet jokaiselle InputObject
Tämä esimerkki osoittaa käyttämälläSelect-Object
laskettujen ominaisuuksien lisäämistä syötteeseesi. Ominaisuuden parametrin syöttäminen komentosarjaan aiheuttaa Select-Object
lausekkeen arvioimisen oneach-objektin läpäisystä ja tulosten lisäämisen tulosteeseen. Scriptblockin sisällä voit käyttää$_
– muuttujaa viitataksesi putkessa olevaan nykyiseen objektiin.
oletuksena Select-Object
käyttää Komentosulkujonoa ominaisuuden nimenä. Käyttämällä aHashtable, voit merkitä tulosteen ScriptBlock kuin mukautetun ominaisuuden lisätään kuhunkin. Jokaiseen Select-Object
siirrettyyn kohteeseen voi lisätä useita laskettuja ominaisuuksia.
parametrit
määrittää ominaisuudet, jotka tämä cmdlet sulkee pois operaatiosta. Jokerimerkit ovat sallittuja.
PowerShell 6: ssa aloitettaessa ei enää tarvitse sisällyttää Ominaisuusparametria forExcludeProperty to work.
Type: | String |
Position: | Named | Default value: |
None | |
Accept pipeline input: | False |
hyväksy jokerimerkit: | True |
määrittää valittavan ominaisuuden ja osoittaa, että kyseistä ominaisuutta on yritettävä laajentaa.
- Jos määritelty ominaisuus on matriisi, jokainen matriisin arvo sisältyy tulosteeseen.
- Jos määritetty ominaisuus on objekti, objektien ominaisuudet laajennetaan everinputobject
kummassakin tapauksessa objektien tyyppi vastaa laajennetun ominaisuuden tyyppiä.
Jos Ominaisuusparametri on määritelty, Select-Object
yrittää lisätä jokaisen valitun ominaisuuden Muistioksi jokaiseen ulos tuotettuun kohteeseen.
Varoitus
Jos saat virheen: valitse : ominaisuutta ei voida käsitellä, koska ominaisuus <PropertyName>
on jo olemassa, harkitse seuraavaa.Huomaa, että käytettäessä -ExpandProperty
Select-Object
ei voi korvata olemassa olevaa ominaisuutta.Tämä tarkoittaa:
- Jos laajennetulla objektilla on samanniminen ominaisuus, tapahtuu virhe.
- Jos valitulla objektilla on samanniminen ominaisuus kuin laajennetulla objektilla, tapahtuu virhe.
Type: | |
Position: | nimetty |
oletusarvo: | False |
hyväksy jokerimerkit: | False |
määrittää syötettävien objektien joukon alusta valittavien kohteiden lukumäärän.
Type: | Int32 |
Position: | nimetty |
Default value: | None |
hyväksy putkilinjan tulo: | false |
hyväksyy jokerimerkit: | False |
valitsee kohteet joukosta niiden indeksiarvojen perusteella. Kirjoita hakemistot pilkulla erotettuun luetteloon. Indeksit array alkaa 0, jossa 0 edustaa ensimmäinen arvo ja (n-1) edustaa viimeinen arvo.
Type: | Int32 |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies objects to send to the cmdlet through the pipeline. This parameter enables you to pipeobjects to Select-Object
.
kun siirrät objekteja inputobject-parametrille, sen sijaan että käyttäisit putkea,Select-Object
käsittelee InputObject-kohdetta yhtenä objektina, vaikka arvo olisi kokoelma. Itis suositteli käyttämään putkea, kun kulkee kokoelmia Select-Object
.
Type: | PSObject |
Position: | nimetty |
oletusarvo: | |
hyväksy putkilinjan tulo: | tosi |
hyväksy jokerimerkit: | False |
Specifies the number of objects to select from the end of an array of input objects.
Type: | Int32 |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies the properties to select. Nämä ominaisuudet lisätään NoteProperty jäsenet the output objects. Jokerimerkit ovat sallittuja.
Ominaisuusparametrin arvo voi olla Uusi laskettu ominaisuus. Jos haluat luoda lasketun ominaisuuden, käytä hajautustaulua.
kelvollisia avaimia ovat:
- Name (or Label) –
<string>
- Expression –
<string>
tai<script block>
katso about_calculated_ominaisuudet.
Type: | Object |
Position: | |
oletusarvo: | None |
hyväksy putkilinjan tulo: | vääriä |
totta |
-Skip
ohittaa (ei valitse) määrätyn määrän kohteita. Oletusarvoisesti Skip-parametri laskee joukon tai objektiluettelon alusta,mutta jos komento käyttää viimeistä parametria, se lasketaan luettelon tai joukon lopusta.
toisin kuin Indeksiparametri, joka alkaa laskea 0: sta, Ohitusparametri alkaa 1: stä.
Type: | Int32 |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Type: | Int32 |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
ohittaa (ei valitse) määritetyn määrän kohteita luettelon tai taulukon lopusta. Toimii samalla tavalla kuin Skipin käyttäminen yhdessä viimeisen parametrin kanssa.
toisin kuin Indeksiparametri, joka alkaa laskea 0: sta, SkipLast-parametri alkaa 1: stä.
Type: | Int32 |
Position: | nimetty |
oletusarvo: | |
hyväksy putkilinjan tulo: | False |
hyväksy jokerimerkit: | False |
määrittää, että jos syötteen osajoukolla on identtiset ominaisuudet ja arvot, valitaan vain yksi osajoukko.
Tämä parametri on kirjainkokoherkkä. Tämän seurauksena merkkijonoja, jotka eroavat toisistaan vain merkin kotelossa, pidetään ainutlaatuisina.
Type: | Switchparametrer |
Position: | Named |
oletusarvo: | None |
hyväksy putkilinjan tulo: | False | hyväksy jokerimerkit: | False |
-odota
osoittaa, että cmdlet sammuttaa optimoinnin. PowerShell suorittaa komentoja siinä järjestyksessä, että ne ilmestyvät komentoputkeen ja antaa niiden luoda kaikki objektit. Oletuksena, jos lisäätSelect-Object
komennon, jossa on ensimmäinen tai Indeksiparametrit komentoputkistossa, PowerShell pysäyttää komennon, joka luo objektit heti, kun valittu määrä objekteja on luotu.
Tämä parametri esiteltiin Windows PowerShell 3.0: ssa.
Type: | Switchparametrer |
Position: | Nomed |
Default value: | |
Accept pipeline input: | false |
hyväksy jokerimerkit: | False |
Input
PSObject
Select-Object
.
lähdöt
PSObject
muistiinpanot
-
voi viitata myös
Select-Object
cmdlet sen sisäänrakennetulla aliaksella,select
. Lisätietoja on kohdassa about_Aliases. -
Select-Object
optimointiominaisuus on käytettävissä vain komennoille, jotka kirjoittavat objekteja putkistoon sitä mukaa kuin niitä käsitellään. Sillä ei ole vaikutusta komentoihin, jotka puskuroivat käsiteltyjä esineitä ja kirjoittavat ne kokoelmana. Kirjoittaminen esineitä välittömästi on cmdlet suunnittelu paras käytäntö. Lisätietoja, KS. Kirjoita yksittäisiä tietueita putkijohtoon voimakkaasti kannustettuja Kehitysohjeita.