Select-Object

modul: Microsoft.PowerShell.Nástroj

vybere objekty nebo vlastnosti objektu.

Syntax

Select-Object >] 
Select-Object >] 

Popis

Select-Object cmdlet vybere specifikované vlastnosti objektu nebo sady objektů. Může také vybrat jedinečné objekty, zadaný počet objektů nebo objekty v zadané poloze v anarray.

Chcete-li vybrat objekty z kolekce, použijte parametry First, Last, Unique, Skip aindex. Chcete-li vybrat Vlastnosti objektu, použijte parametr vlastnost. Když vyberete vlastnosti, Select-Object vrátí nové objekty, které mají pouze zadané vlastnosti.

počínaje Windows PowerShell 3.0 obsahuje Select-Object optimalizační funkci, která zabraňuje vytváření a zpracování nepoužívaných objektů.

Když zahrnete Select-Object příkaz s První nebo Index parametrů v commandpipeline, PowerShell zastaví příkaz, který generuje objekty, jakmile se vybrané číslo ofobjects je generován, i když je příkaz, který generuje objekty se zobrazí předSelect-Object příkaz v potrubí. Chcete-li toto optimalizační chování vypnout, použijte Waitparameter.

Příklady

Příklad 1: Vybrat objekty podle vlastností

Tento příklad vytvoří objekty, které mají Jméno, ID, a pracovní sada (WS) vlastnosti ofprocess objekty.

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

Příklad 2: Vybrat objekty podle vlastností a formátování výsledků

Tento příklad dostane informace o modulů používaných procesů na počítači. PoužíváGet-Process rutina pro získání procesu v počítači.

používá Select-Object cmdlet na výstupní pole instance obsažené v Modulech majetku každého System.Diagnostics.Process instanceoutput Get-Process.

parametr vlastnosti Select-Object cmdlet vybere názvy procesů. To přidáProcessName NoteProperty ke každé instanci a zaliduje hodnotu vlastnosti ProcessName aktuálního procesu.

nakonec Format-List rutina se používá k zobrazení názvu a modulů každého procesu v seznamu.

příklad 3: Vyberte procesy využívající nejvíce paměti

tento příklad získá pět procesů, které používají nejvíce paměti. Get-Process rutina dostane procesy v počítači. RutinaSort-Object seřadí procesy podle využití paměti (pracovní sady) a rutina Select-Object vybere pouze posledních pět členů výsledného pole objektů.

Počkejte parametr není vyžadován, v příkazy, které obsahují Sort-Object rutiny, protožeSort-Object zpracuje všechny objekty, a pak se vrátí kolekce. Select-Object optimalizaceje k dispozici pouze pro příkazy, které vracejí objekty jednotlivě, jak jsou zpracovávány.

příklad 4: Vyberte jedinečné znaky z pole

Tento příklad používá Unikátní parametr Select-Object získat jedinečné znaky z arrayof znaky.

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

Příklad 5: Zvolte nejnovější a nejstarší události v protokolu událostí

Tento příklad dostane první (nejnovější) a poslední (nejstarší) události v prostředí Windows PowerShell protokolu událostí.

Get-EventLog získá všechny události v protokolu Windows PowerShell a uloží je do proměnné $a.Poté je $a přiváděn doSelect-Object cmdlet. Příkaz Select-Object používá Indexparameter k výběru událostí z pole událostí v proměnné $a. Index první události je 0. Index poslední události je počet položek v $a minus 1.

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

Příklad 6: Vyberte všechny ale první objekt

Tento příklad vytvoří nový PSSession na každém z počítačů uvedených v Serverech.txt soubory,s výjimkou prvního.

Select-Object vybere všechny kromě prvního počítače v seznamu názvů počítačů. Výsledný seznam počítačů je nastavena jako hodnota ComputerName parametr New-PSSession rutiny.

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

Příklad 7: Přejmenování souborů a vyberte několik přezkumu

Tento příklad přidá „-ro“ přípony k základu jména z textových souborů, které mají jen pro čtení attributeand pak zobrazuje prvních pět souborů, takže uživatel může vidět vzorek účinek.

Get-ChildItem používá parametr ReadOnly dynamic k získání souborů pouze pro čtení. Výsledné soubory jsou směrovány doRename-Item rutina, která přejmenuje soubor. Používá Passthru parametrRename-Item poslat přejmenované soubory Select-Object cmdlet, který vybere prvních 5 fordisplay.

parametr čekání Select-Object zabraňuje PowerShell zastavitGet-ChildItemrutina poté, co získá prvních pět textových souborů pouze pro čtení. Bez tohoto parametru by bylo přejmenováno pouze prvnípět souborů pouze pro čtení.

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

příklad 8: Prokázat složitosti -ExpandProperty parametr

Tento příklad demonstruje složitosti ExpandProperty parametr.

Všimněte si, že generovaným výstupem bylo pole instancí. Instance vyhovujístandardní pravidla formátování výstupního zobrazení. To platí pro všechny rozšířené vlastnosti. Pokud mají zadané objekty specifický standardní formát, nemusí být rozšířená vlastnost viditelná.

# 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

příklad 9: Vytvořte si vlastní vlastnosti na objekty

následující příklad ukazuje použití Select-Object přidat vlastní vlastnost nějakého objektu.Když zadáte název vlastnosti, který neexistuje, Select-Object vytvoří tuto vlastnost jako aNoteProperty na každém předaném objektu.

Příklad 10: Vytvořte vypočtené vlastnosti pro každý InputObject

Tento příklad ukazuje použití Select-Object přidat vypočtené vlastnosti, aby váš vstup. Passinga ScriptBlock na Majetku parametr způsobí, že Select-Object vyhodnotit výraz nakaždá objekt prošel a přidejte výsledky na výstup. V rámci Scriptblocku můžete použít proměnnou$_ pro odkaz na aktuální objekt v potrubí.

ve výchozím nastavení Select-Object použije řetězec ScriptBlock jako název vlastnosti. Pomocí aHashtable, můžete označit výstup ScriptBlock jako vlastní vlastnost přidána pro každý objekt. Ke každému objektu předanému Select-Objectmůžete přidat více vypočtených vlastností.

parametry

– ExcludeProperty

určuje vlastnosti, které tato rutina vylučuje z operace. Zástupné znaky jsou povoleny.

počínaje PowerShell 6 již není nutné zahrnout parametr vlastnosti forExcludeProperty do práce.

Typ: String
Poloha: Jménem
Výchozí hodnota: None
Přijmout potrubí vstup: False
použít zástupné znaky: True
-ExpandProperty

Určuje vlastnost, kterou chcete vybrat, a naznačuje, že měl by být proveden pokus rozšířit thatproperty.

  • pokud je zadanou vlastností pole, je každá hodnota pole zahrnuta do výstupu.
  • Pokud zadaná vlastnost je objekt, objekty, vlastnosti jsou rozšířeny pro everyInputObject

V každém případě, Typ objektů, výstup bude odpovídat Typu rozšířená vlastnost.

je-Li Vlastnost je parametr zadán, Select-Object se bude snažit přidat každý selectedproperty jako NoteProperty na každý výstup objektu.

Upozornění

Pokud se zobrazí chyba: Vyberte : Majetek nelze zpracovat, protože vlastnost <PropertyName>již existuje, zvažte následující.Všimněte si, že při použití -ExpandPropertySelect-Object nemůže nahradit existující vlastnost.To znamená:

  • pokud má rozšířený objekt vlastnost se stejným názvem, dojde k chybě.
  • pokud má vybraný objekt vlastnost se stejným názvem jako vlastnost rozšířených objektů, dojde k anerror.
Typ: String
Poloha: Jménem
Výchozí hodnota: None
Přijmout potrubí vstup: False
použít zástupné znaky: False

Určuje počet objektů, vyberte od začátku pole vstupních objektů.

Typ: Int32
Poloha: Jménem
Výchozí hodnota: None
Přijmout potrubí vstup: False
použít zástupné znaky: False

-Index

Vybere objekty z pole na základě jejich hodnoty indexu. Zadejte indexy v odděleném čárkaseznam. Indexy v poli začínají 0, kde 0 představuje první hodnotu a (n-1) představuje poslední hodnotu.

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.

když předáte objekty parametru InputObject, místo použití potrubí,Select-Object zachází s InputObject jako s jedním objektem, i když je hodnota kolekce. Itis doporučuje použít potrubí při předávání kolekcí do Select-Object.

Typ: PSObject
Poloha: Jménem
Výchozí hodnota: None
Přijmout potrubí vstup: True
použít zástupné znaky: 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. Tyto vlastnosti jsou přidány jako členy NoteProperty do výstupních objektů. Zástupné znaky jsou povoleny.

hodnota parametru Property může být nová vypočtená vlastnost. Chcete-li vytvořit vypočtenou vlastnost, použijte tabulku hash.

Platné klíče jsou:

  • Jméno (nebo Označení) – <string>
  • Výraz – <string> nebo <script block>

Pro více informací, seeabout_Calculated_Properties.

Typ: objekt
pozice: 0
Výchozí hodnota: None
Přijmout potrubí vstup: False
použít zástupné znaky: True
-Přeskočit

Přeskočí (nevolí) zadaný počet položek. Ve výchozím nastavení se počítá parametr Přeskočeníod začátku pole nebo seznamu objektů,ale pokud příkaz používá poslední parametr, počítá se od konce seznamu nebo pole.

Na rozdíl od parametru Index, který začíná počítat na 0, parametr Skip začíná na 1.

Typ: 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

Přeskočí (nevolí) zadaný počet položek z konce seznamu nebo pole. Funguje stejným způsobem jako použití Skip spolu s posledním parametrem.

Na rozdíl od parametru Index, který začíná počítat na 0, parametr SkipLast začíná na 1.

Typ: Int32
Poloha: Jménem
Výchozí hodnota: None
Přijmout potrubí vstup: False
použít zástupné znaky: False
-Unikátní

Určuje, že pokud podmnožinu vstupních objektů má stejné vlastnosti a hodnoty, pouze singlemember podmnožiny bude vybrán.

tento parametr je citlivý na velká a malá písmena. V důsledku toho jsou řetězce, které se liší pouze ve znakovém plášti, považovány za jedinečné.

Typ: SwitchParameter
Poloha: Jménem
Výchozí hodnoty: None
Přijmout potrubí vstup: False
použít zástupné znaky: False
-Počkej

Označuje, že rutiny vypne optimalizace. PowerShell spouští příkazy v pořadí, v jakém jsouse objeví v příkazovém potrubí a umožňuje jim generovat všechny objekty. Ve výchozím nastavení, pokud jste zahrnoutSelect-Object příkaz s První nebo Index parametrů v příkazovém potrubí, PowerShellstops příkaz, který generuje objekty, jakmile vybraný počet objektů je generován.

tento parametr byl zaveden v systému Windows PowerShell 3.0.

Typ: SwitchParameter
Poloha: Jménem
Výchozí hodnota: None
Přijmout potrubí vstup: False
použít zástupné znaky: False

Vstupy

PSObject

můžete potrubí jakýkoli objekt Select-Object.

Výstupy

PSObject

Poznámky

  • můžete také odkazovat na Select-Object rutiny tím, že jeho postaven-v alias, select. Další informace naleznete v části o_aliases.

  • funkce optimalizace Select-Object je k dispozici pouze pro příkazy, které zapisují předměty do potrubí tak, jak jsou zpracovány. Nemá žádný vliv na příkazy, které vyrovnávají zpracované objekty anapsat je jako sbírku. Okamžité psaní objektů je osvědčenou praxí cmdlet design. Pro více informací, viz zápis jednotlivých záznamů do potrubí v zásadně podporovaných pokynech pro rozvoj.

  • about_Calculated_Properties
  • Skupiny Objektů
  • Sort-Object
  • Kde-Objekt

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *