Vælg-objekt

modul: Microsoft.Kraftskal.Utility

vælger objekter eller objektegenskaber.

syntaks

Select-Object >] 
Select-Object >] 

beskrivelse

Select-Object cmdlet vælger specificerede egenskaber for et objekt eller et sæt objekter. Det kan ogsåVælg unikke objekter, et bestemt antal objekter eller objekter i en bestemt position i anarray.

Hvis du vil vælge objekter fra en samling, skal du bruge parametrene første, sidste, entydige, spring over ogindeks. Hvis du vil vælge objektegenskaber, skal du bruge Egenskabsparameteren. Når du vælgeregenskaber,Select-Object returnerer nye objekter, der kun har de angivne egenskaber.3.0, Select-Object indeholder en optimeringsfunktion, der forhindrerkommandoer i at oprette og behandle objekter, der ikke bruges.

Når du inkluderer enSelect-Object kommando med de første eller Indeksparametre i en kommandopipeline, stopper Strømshell kommandoen, der genererer objekterne, så snart det valgte antal objekter genereres, selv når kommandoen, der genererer objekterne, vises før kommandoenSelect-Object i pipeline. For at slukke for denne optimeringsadfærd skal du bruge Venteparameteren.

eksempler

eksempel 1: Vælg objekter efter egenskab

dette eksempel opretter objekter, der har egenskaberne navn, ID og arbejdssæt for procesobjekter.

Get-Process | Select-Object -Property ProcessName, Id, WS

eksempel 2: Vælg objekter efter egenskab og formater resultaterne

dette eksempel får oplysninger om de moduler, der bruges af processerne på computeren. Det brugerGet-Process cmdlet for at få processen på computeren.

det brugerSelect-Object cmdlet til at udsende et array afforekomster som indeholdt i modulegenskaben for hverSystem.Diagnostics.Process instanceoutput afGet-Process.

Egenskabsparameteren forSelect-Object cmdlet vælger procesnavne. Dette tilføjer enProcessName NoteProperty til hver forekomst og populatesit med værdien af den aktuelle proces ProcessName ejendom.

endeligFormat-List cmdlet bruges til at vise navnet og modulerne for hver proces på en liste.

eksempel 3: Vælg processer, der bruger mest hukommelse

dette eksempel får de fem processer, der bruger mest hukommelse. Get-Process cmdlet fårprocesserne på computeren. Sort-Object cmdlet sorterer processerne i henhold til hukommelsesbrug(arbejdssæt), og Select-Object cmdlet vælger kun de sidste fem medlemmer af det resulterende array af objekter.

Venteparameteren er ikke påkrævet i kommandoer, der indeholderSort-Object cmdlet, fordiSort-Object behandler alle objekter og returnerer derefter en samling. Select-Object optimering er kun tilgængelig for kommandoer, der returnerer objekter individuelt, når de behandles.

eksempel 4: Vælg unikke tegn fra et array

dette eksempel bruger den unikke parameter Select-Object for at få unikke tegn fra et arrayof tegn.

"a","b","c","a","a","a" | Select-Object -Uniqueabc

eksempel 5: Vælg nyeste og ældste begivenheder i hændelsesloggen

dette eksempel får de første (nyeste) og sidste (ældste) begivenheder i hændelsesloggen.

Get-EventLog får alle begivenheder i vinduerne Strømshell log og gemmer dem i$a variabel.Derefter$a ledes tilSelect-Object cmdlet. KommandoenSelect-Object bruger Indeksparameteren til at vælge begivenheder fra arrayet af begivenheder i variablen$a. Indekset for den førstebegivenhed er 0. Indekset for den sidste begivenhed er antallet af elementer i $a minus 1.

$a = Get-EventLog -LogName "Windows PowerShell"$a | Select-Object -Index 0, ($A.count - 1)

eksempel 6: Vælg alle undtagen det første objekt

dette eksempel opretter en ny PSSession på hver af de computere, der er angivet i serverne.tekstfiler, bortset fra den første.

Select-Object vælger alle undtagen den første computer i en liste over computernavne. Den resulterende listeaf computere er indstillet som værdien af Computernavnsparameteren for New-PSSession cmdlet.

New-PSSession -ComputerName (Get-Content Servers.txt | Select-Object -Skip 1)

eksempel 7: Omdøb filer, og vælg flere for at gennemgå

dette eksempel tilføjer et “-ro”-suffiks til basisnavnene på tekstfiler, der har skrivebeskyttet attributog viser derefter de første fem filer, så brugeren kan se en prøve af effekten.

Get-ChildItem bruger den dynamiske parameter ReadOnly til at få skrivebeskyttede filer. De resulterende filerrøres til Rename-Item cmdlet, som omdøber filen. Det bruger Passthru-parameterenRename-Itemfor at sende de omdøbte filer til Select-Object cmdlet, som vælger den første 5 tildisplay.

Venteparameteren forSelect-Object forhindrer Strømshell i at stoppeGet-ChildItemcmdlet, når den får de første fem skrivebeskyttede tekstfiler. Uden denne parameter vil kun den førstefem skrivebeskyttede filer blive omdøbt.

Get-ChildItem *.txt -ReadOnly | Rename-Item -NewName {$_.BaseName + "-ro.txt"} -PassThru | Select-Object -First 5 -Wait

Eksempel 8: Demonstrere indviklingen af-Udvidelseejendomsparameteren

dette eksempel viser indviklingen i Udvidelseejendomsparameteren.

Bemærk, at den genererede output var en række forekomster. Forekomsterne er i overensstemmelse medstandardformateringsregler for Outputvisningen. Dette gælder for eventuelle udvidede egenskaber. Hvis outputtede objekter har et bestemt standardformat, er den udvidede egenskab muligvis ikke synlig.

# 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

eksempel 9: Opret brugerdefinerede egenskaber på objekter

følgende eksempel viser brug afSelect-Object for at tilføje en brugerdefineret egenskab til ethvert objekt.Når du angiver et egenskabsnavn, der ikke findes, opretter Select-Object denne egenskab som aNoteProperty på hvert bestået objekt.

eksempel 10: Opret beregnede egenskaber for hvert InputObject

dette eksempel viser ved hjælp af Select-Object for at tilføje beregnede egenskaber til dit input. Passinga ScriptBlock til Egenskabsparameteren forårsager Select-Object for at evaluere udtrykket påhvert objekt bestået og tilføje resultaterne til output. Inden for ScriptBlock kan du bruge variablen$_ til at henvise til det aktuelle objekt i rørledningen.

som standard vil Select-Object bruge ScriptBlock-strengen som navnet på ejendommen. Ved hjælp af aHashtable kan du mærke output fra din ScriptBlock som en brugerdefineret egenskab tilføjet til everyobject. Du kan tilføje flere beregnede egenskaber til hvert objekt, der sendes til Select-Object.

parametre

-Udelukkeejendom

angiver de egenskaber, som denne cmdlet udelukker fra operationen. Jokertegn er tilladt.

begynder i Kraftshell 6, er det ikke længere nødvendigt at medtage Egenskabsparameteren forudelukketejendom til arbejde.

Type: String
Position: navngivet
Standardværdi: ingen
accepter pipeline input: falsk
accepter jokertegn: True
-udvidelses ejendom

angiver en egenskab, der skal vælges, og angiver, at der skal gøres et forsøg på at udvide denejendom.

  • hvis den angivne egenskab er et array, er hver værdi af arrayet inkluderet i output.
  • hvis den angivne egenskab er et objekt, udvides objektegenskaberne for everyInputObject

I begge tilfælde svarer typen af objekter, der udsendes, til typen af den udvidede egenskab.

Hvis Egenskabsparameteren er angivet, vilSelect-Object forsøge at tilføje hver selectedproperty som en NoteProperty til hvert udsendt objekt.

advarsel

Hvis du modtager fejlen: Vælg : ejendom kan ikke behandles, fordi ejendom<PropertyName>allerede findes, overvej følgende.Bemærk, at når du bruger -ExpandProperty, kan Select-Object ikke erstatte en eksisterende ejendom.Dette betyder:

  • hvis det udvidede objekt har en egenskab med samme navn, opstår der en fejl.
  • hvis det valgte objekt har en egenskab med samme navn som en egenskab med udvidede objekter, opstår der en fejl.
Type: String
Position: navngivet
Standardværdi: ingen
accepter pipeline input: false
accepter jokertegn: false
-først

angiver antallet af objekter, der skal vælges fra begyndelsen af en vifte af input objekter.

Type: Int32
Position: navngivet
Standardværdi: ingen
accepter pipeline input: false
Accepter jokertegn: false
-indeks

vælger objekter fra et array baseret på deres indeksværdier. Indtast indekserne i et kommasepareretliste. Indekser i et array begynder med 0, hvor 0 repræsenterer den første værdi og (n-1) repræsenterer densidste værdi.

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.

Når du overfører objekter til InputObject-parameteren, behandlerSelect-Object i stedet for at bruge pipeline InputObject som et enkelt objekt, selvom værdien er en samling. Det anbefales, at du bruger rørledningen, når du sender samlinger til Select-Object.

Type: PSObject
Position: navngivet
Standardværdi: ingen
accepter pipeline input: sand
Accepter jokertegn: 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. Disse egenskaber tilføjes som NoteProperty medlemmer tiloutput objekter. Jokertegn er tilladt.

værdien af Egenskabsparameteren kan være en ny beregnet egenskab. Hvis du vil oprette en beregnet egenskab,skal du bruge en hash-tabel.

gyldige nøgler er:

  • navn (eller etiket) – <string>
  • udtryk – <string> eller<script block>

For mere information, seabout_calculated_properties.

Type: objekt
Position: 0
Standardværdi: None
Accepter pipeline input: False
Accepter jokertegn: True
-Spring

springer over (vælger ikke) det angivne antal elementer. Skip-parameteren tæller som standardfra begyndelsen af arrayet eller listen over objekter, men hvis kommandoen bruger den sidste parameter,tæller den fra slutningen af listen eller arrayet.

I modsætning til Indeksparameteren, der begynder at tælle ved 0, begynder Skip-parameteren ved 1.

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

springer (vælger ikke) det angivne antal elementer fra slutningen af listen eller arrayet. Fungerer på samme måde som at bruge Skip sammen med sidste parameter.

I modsætning til Indeksparameteren, der begynder at tælle ved 0, begynder SkipLast-parameteren ved 1.

Type: Int32
Position: navngivet
Standardværdi: ingen
accepter pipeline input: False
Accepter jokertegn: False
-unik

angiver, at hvis en delmængde af inputobjekterne har identiske egenskaber og værdier, vil kun et enkelt medlem af delmængden være valgt.

denne parameter er store og små bogstaver. Som følge heraf er strenge, der kun adskiller sig i tegnhusbetragtes som unikke.

Type: Skiftparameter
Position: navngivet
Standardværdi: None
Accepter pipeline input: False
Accepter jokertegn: False
-vent

angiver, at cmdlet ‘ en slukker for optimering. Kører kommandoer i den rækkefølge, devises i kommandopipelinen og lader dem generere alle objekter. Hvis du som standard inkluderer enSelect-Object kommando med de første eller Indeksparametre i en kommandopipeline, skal du stoppe den kommando, der genererer objekterne, så snart det valgte antal objekter genereres.

denne parameter blev introduceret i vinduer Strømshell 3.0.

Type: Skifteparameter
Position: navngivet
Standardværdi: ingen
accepter pipeline input: falsk
accepter jokertegn: False

indgange

PSObject

Du kan rør ethvert objekt til Select-Object.

udgange

PSObject

noter

  • Du kan også henvise tilSelect-Objectcmdlet ved dets indbyggede alias,select. For mere information, se about_Aliases.

  • optimeringsfunktionen iSelect-Object er kun tilgængelig for kommandoer, der skriver objekter tilrørledningen, som de behandles. Det har ingen effekt på kommandoer, der buffer behandlede objekter ogskriv dem som en samling. At skrive objekter med det samme er en cmdlet design bedste praksis. For mereOplysninger, se skriv enkelte poster til Pipeline instructly opmuntret udviklingsretningslinjer.

  • about_Calculated_Properties
  • gruppe-objekt
  • Sorter-objekt
  • hvor-objekt

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *