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-ChildItem
rutina 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-Object
můžete přidat více vypočtených vlastností.
parametry
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 |
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í -ExpandProperty
Select-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 |
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 |
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 |
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. 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čí (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 |
Type: | Int32 |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
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 |
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 |
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