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 hver
System.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-Item
for 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-ChildItem
cmdlet, 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
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 |
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 |
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 |
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 |
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 |
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. 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 |
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 |
Type: | Int32 |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
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 |
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 |
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 til
Select-Object
cmdlet ved dets indbyggede alias,select
. For mere information, se about_Aliases. -
optimeringsfunktionen i
Select-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