Select-Object

Module: Microsoft.PowerShell.Utility

selecteert objecten of objecteigenschappen.

syntaxis

Select-Object >] 
Select-Object >] 

Description

de Select-Object cmdlet selecteert gespecificeerde eigenschappen van een object of verzameling objecten. Het kan ook unieke objecten selecteren, een bepaald aantal objecten, of objecten in een bepaalde positie in anarray.

om objecten uit een verzameling te selecteren, gebruikt u de parameters First, Last, Unique, Skip, andIndex. Als u objecteigenschappen wilt selecteren, gebruikt u de eigenschap-parameter. Als u Properties selecteert, geeft Select-Object nieuwe objecten terug die alleen de opgegeven eigenschappen hebben.

beginnend in Windows PowerShell 3.0, bevat Select-Object een optimalisatiefunctie die voorkomt dat opdrachten objecten maken en verwerken die niet worden gebruikt.

wanneer u een opdracht Select-Object toevoegt met de eerste of Indexparameters in een commandpipeline, stopt PowerShell de opdracht die de objecten genereert zodra het geselecteerde aantal Objects is gegenereerd, zelfs wanneer de opdracht die de objecten genereert voor de opdrachtSelect-Object in de pijplijn verschijnt. Om dit optimalisatiegedrag uit te schakelen, gebruik je de Waitparameter.

voorbeelden

Voorbeeld 1: objecten selecteren op eigenschap

dit voorbeeld maakt objecten met de eigenschappen Naam, ID en werkset (ws) van procesobjecten.

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

Voorbeeld 2: objecten selecteren op Eigenschap en de resultaten opmaken

dit voorbeeld krijgt informatie over de modules die worden gebruikt door de processen op de computer. Het gebruiktGet-Process cmdlet om het proces op de computer te krijgen.

Het gebruikt deSelect-Object cmdlet om een array vaninstanties uit te voeren zoals opgenomen in de Modules eigenschap van elkeSystem.Diagnostics.Process instanceoutput doorGet-Process.

De eigenschap parameter van de Select-Object cmdlet selecteert de procesnamen. Dit voegt eenProcessName NoteProperty toe aan elke instantie en populatesit met de waarde van de ProcessName eigenschap van het huidige proces.

ten slotte wordt Format-List cmdlet gebruikt om de naam en modules van elk proces in een lijst weer te geven.

Voorbeeld 3: Selecteer processen die het meeste geheugen gebruiken

dit voorbeeld toont de vijf processen die het meeste geheugen gebruiken. DeGet-Process cmdlet krijgt de processen op de computer. DeSort-Object cmdlet sorteert de processen volgens geheugengebruik(werkset), en deSelect-Object cmdlet selecteert alleen de laatste vijf leden van de resulterende array van objecten.

De Wachtparameter is niet vereist in opdrachten die de Sort-Object cmdlet bevatten omdatSort-Object alle objecten verwerkt en vervolgens een verzameling retourneert. DeSelect-Object optimizationis alleen beschikbaar voor commando ‘ s die objecten afzonderlijk retourneren terwijl ze worden verwerkt.

Voorbeeld 4: Selecteer unieke tekens uit een array

dit voorbeeld gebruikt de unieke parameter van Select-Object om unieke tekens uit een arrayof characters te krijgen.

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

Voorbeeld 5: Selecteer nieuwste en oudste gebeurtenissen in het gebeurtenislogboek

dit voorbeeld krijgt de eerste (nieuwste) en laatste (oudste) gebeurtenissen in het gebeurtenislogboek van Windows PowerShell.

Get-EventLog krijgt alle gebeurtenissen in de Windows PowerShell-log en slaat ze op in de variabele $a.Vervolgens wordt $a naar de Select-Object cmdlet geleid. Het commando Select-Object gebruikt de Indexparameter om gebeurtenissen te selecteren uit de reeks gebeurtenissen in de variabele $a. De index van de eerste gebeurtenis is 0. De index van de laatste gebeurtenis is het aantal items in $a min 1.

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

Voorbeeld 6: Selecteer alles behalve het eerste object

dit voorbeeld maakt een nieuwe PSSession aan op elk van de computers die op de Servers staan.txt-bestanden,behalve de eerste.

Select-Object selecteert alle computers behalve de eerste computer in een lijst met computernamen. De resulterende lijst van computers wordt ingesteld als de waarde van de computernaam parameter van de New-PSSession cmdlet.

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

Voorbeeld 7: bestanden hernoemen en meerdere selecteren om

te bekijken dit voorbeeld voegt een”- ro ” achtervoegsel toe aan de basisnamen van tekstbestanden die de alleen-lezen attribuut hebben en toont vervolgens de eerste vijf bestanden zodat de gebruiker een voorbeeld van het effect kan zien.

Get-ChildItem gebruikt de dynamische parameter alleen-lezen om alleen-lezen bestanden te verkrijgen. De resulterende bestanden worden doorgesluisd naar de Rename-Item cmdlet, die het bestand hernoemt. Het gebruikt de Pasthru parameter vanRename-Item om de hernoemde bestanden naar de Select-Object cmdlet te sturen, die de eerste 5 selecteert voor display.

De Wachtparameter van Select-Object voorkomt dat PowerShell de Get-ChildItemcmdlet stopt nadat het de eerste vijf alleen-lezen tekstbestanden krijgt. Zonder deze parameter zouden alleen de firstfive alleen-lezen bestanden hernoemd worden.

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

Voorbeeld 8: Demonstreer de fijne kneepjes van de parameter-ExpandProperty

Dit voorbeeld demonstreert de fijne kneepjes van de parameter ExpandProperty.

merk op dat de gegenereerde uitvoer een array was van instances. De instanties voldoen aan standaard opmaakregels van de Uitvoerweergave. Dit geldt voor alle geëxpandeerde eigenschappen. Als de uitgevoerde objecten een specifiek standaardformaat hebben, is de uitgebreide eigenschap mogelijk niet zichtbaar.

# 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

Voorbeeld 9: Maak aangepaste eigenschappen op objecten

het volgende voorbeeld toont het gebruik van Select-Object om een aangepaste eigenschap aan een object toe te voegen.Wanneer u een eigenschapsnaam opgeeft die niet bestaat, maakt Select-Object die eigenschap als aNoteProperty op elk doorgegeven object.

voorbeeld 10: create calculated properties for each InputObject

Dit voorbeeld toont het gebruik van Select-Object om berekende eigenschappen toe te voegen aan uw invoer. Het doorgeven van een scriptblok aan de eigenschap parameter zorgt ervoor dat Select-Object de expressie van elk doorgegeven object evalueert en de resultaten toevoegt aan de uitvoer. Binnen het ScriptBlock kunt u de variabele$_ gebruiken om het huidige object in de pijplijn te refereren.

standaard gebruikt Select-Object De ScriptBlock string als de naam van de eigenschap. Met aHashtable kun je de uitvoer van je ScriptBlock labelen als een aangepaste eigenschap die aan elk object is toegevoegd. U kunt meerdere berekende eigenschappen toevoegen aan elk object dat wordt doorgegeven aan Select-Object.

Parameters

– ExcludeProperty

specificeert de eigenschappen die deze cmdlet uitsluit van de bewerking. Wildcards zijn toegestaan.

beginnend in PowerShell 6, is het niet langer nodig om de eigenschap parameter forExcludeProperty op te nemen om te werken.

Type: String
positie: Named standaardwaarde: geen Accept pipeline input: False
jokertekens accepteren: True
-ExpandProperty

geeft aan dat een poging moet worden gedaan om die Property uit te breiden.

  • als de opgegeven eigenschap een array is, wordt elke waarde van de array opgenomen in de uitvoer.
  • als de opgegeven eigenschap een object is, worden de eigenschappen van objecten uitgebreid voor elkinputobject

In beide gevallen zal het type object dat wordt uitgevoerd overeenkomen met het type van de uitgebreide eigenschap.

als de eigenschap parameter is opgegeven, zal Select-Object proberen om elke geselecteerde property als een NoteProperty toe te voegen aan elk uitgevoerd object.

waarschuwing

Als u de fout ontvangt: Selecteer : eigenschap kan niet worden verwerkt omdat eigenschap <PropertyName>al bestaat, overweeg dan het volgende.Merk op dat bij gebruik van -ExpandPropertySelect-Object een bestaande eigenschap niet kan vervangen.Dit betekent:

  • als het uitgevouwen object een eigenschap met dezelfde naam heeft, zal er een fout optreden.
  • als het geselecteerde object een eigenschap heeft met dezelfde naam als de eigenschap Expanded objects, zal er een fout optreden.
Type: String
Plaats: Naam
Standaard waarde: Geen
Accepteren pijplijn input: False
Accepteren jokertekens: False

Eerste

Hiermee wordt het aantal objecten te selecteren vanaf het begin van een scala van input-objecten.

Type: Int32
Plaats: Naam
Standaard waarde: Geen
Accepteren pijplijn invoer: False
Accepteren wildcard tekens: False
Index

Selecteert objecten uit een matrix op basis van hun index waarden. Voer de indexen in een komma-gescheiden lijst. Indexen in een array beginnen met 0, waarbij 0 de eerste waarde voorstelt en (n-1)de laatste waarde.

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.

wanneer u objecten doorgeeft aan de InputObject parameter, in plaats van de pijplijn te gebruiken, behandeltSelect-Object het InputObject als een enkel object, zelfs als de waarde een verzameling is. Het wordt aanbevolen dat u de pijplijn gebruikt wanneer u collecties doorgeeft aan Select-Object.

Type: PSObject
positie: Named standaardwaarde: geen Accept pipeline input: True
accepteer jokertekens: 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. Deze eigenschappen worden toegevoegd als NoteProperty leden aan de output objecten. Wildcards zijn toegestaan.

de waarde van de eigenschap parameter kan een nieuwe berekende eigenschap zijn. Gebruik een hash tabel om een berekende eigenschap te maken.

geldige sleutels zijn:

  • naam (of Label) – <string>
  • expressie – <string> of <script block>

voor meer informatie, zie over_calculated_properties.

Type: Object
positie: 0 standaardwaarde: geen
ga pipeline input: False
accepteer jokertekens: True
-Skip

slaat het opgegeven aantal items over (selecteert niet). Standaard telt de parameter overslaan vanaf het begin van de array of lijst van objecten, maar als het commando de laatste parameter gebruikt,telt het vanaf het einde van de lijst of array.

In tegenstelling tot de indexparameter, die begint te tellen bij 0, begint de Skipparameter bij 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

slaat het opgegeven aantal items uit het einde van de lijst of array over. Werkt op dezelfde manier als het gebruik van Skip samen met de laatste parameter.

In tegenstelling tot de Indexparameter, die begint te tellen bij 0, begint de SkipLast-parameter bij 1.

Type: Int32
positie: Named
standaardwaarde: geen Accept pipeline input: False
jokertekens accepteren: False
-unieke

geeft aan dat als een subset van de invoerobjecten identieke eigenschappen en waarden heeft, slechts een enkel lid van de subset wordt geselecteerd.

Deze parameter is hoofdlettergevoelig. Als gevolg daarvan worden strings die alleen verschillen in karakter behuizing beschouwd als uniek te zijn.

Type: SwitchParameter
positie: Named standaardwaarde: None Accept pipeline input: False
Accept jokertekens: False
-Wait

geeft aan dat de cmdlet optimalisatie uitschakelt. PowerShell voert commando ‘ s uit in de volgorde waarin ze verschijnen in de commandopijplijn en laat ze alle objecten genereren. Als u standaard een opdrachtSelect-Object opneemt met de eerste of Indexparameters in een opdrachtpijplijn, stopt PowerShell het commando dat de objecten genereert zodra het geselecteerde aantal objecten is gegenereerd.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

Type: SwitchParameter
positie: Named Default value: None Accept pipeline input: False
jokertekens accepteren: False

invoer

PSObject

u kunt elk object doorsluizen naar Select-Object.

Outputs

PSObject

Notes

  • u kunt ook naar de Select-Object cmdlet verwijzen door zijn ingebouwde alias, select. Zie about_Aliases voor meer informatie.

  • De optimalisatiefunctie van Select-Object is alleen beschikbaar voor commando ‘ s die objecten naar de pijplijn schrijven terwijl ze worden verwerkt. Het heeft geen effect op commando ‘ s die objecten bufferen en ze als een verzameling schrijven. Het schrijven van objecten onmiddellijk is een cmdlet ontwerp best practice. Voor meer informatie, zie schrijf enkele Records naar de pijplijn inStrongly Encouraged Development Guidelines.

  • about_Calculated_Properties
  • Groep-Object
  • Sorteer-Object
  • waar-Object

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *