Select-Object

Module: Microsoft.PowerShell.Utility

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-ChildItemcmdlet 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-Objectsiirrettyyn kohteeseen voi lisätä useita laskettuja ominaisuuksia.

parametrit

-ExcludeProperty

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.

td>

Type: String
Position: Named
Default value:
None
Accept pipeline input: False
hyväksy jokerimerkit: True
-ExpandProperty

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ä -ExpandPropertySelect-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.

String

Ei mitään

td>accept pipeline input:

Type:
Position: nimetty
oletusarvo:
False
hyväksy jokerimerkit: False
-First

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
-index

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

-InputObject

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.

Ei mitään

Type: PSObject
Position: nimetty
oletusarvo:
hyväksy putkilinjan tulo: tosi
hyväksy jokerimerkit: False
-Last

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
-Property

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.

0

hyväksy jokerimerkit:

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
-SkipIndex
Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-SkipLast

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ä.

Ei mitään

Type: Int32
Position: nimetty
oletusarvo:
hyväksy putkilinjan tulo: False
hyväksy jokerimerkit: False
-uniikki

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.

  • about_Calculated_Properties
  • ryhmä-objekti
  • Lajittele-objekti
  • missä-objekti
  • Vastaa

    Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *