objektumok vagy objektum Tulajdonságok kiválasztása.
szintaxis
Select-Object >]
Select-Object >]
leírás
a Select-Object
cmdlet egy objektum vagy objektumkészlet meghatározott tulajdonságait választja ki. Ez isválasszon egyedi objektumokat, meghatározott számú objektumot vagy objektumokat egy meghatározott helyzetben anarray-ban.
objektumok kiválasztásához a gyűjteményből használja az első, Utolsó, egyedi, Skip, andIndex paramétereket. Az objektum tulajdonságainak kiválasztásához használja a tulajdonság paramétert. A Select-Object
olyan új objektumokat ad vissza, amelyek csak a megadott tulajdonságokkal rendelkeznek.
kezdve a Windows PowerShell 3.0, Select-Object
tartalmaz egy optimalizálási funkciót, amely megakadályozza a nem használt objektumok létrehozását és feldolgozását.
Ha egySelect-Object
parancsot tartalmaz az első vagy Index paraméterekkel a commandpipeline-ben, a PowerShell leállítja az objektumokat generáló parancsot, amint a kiválasztott számú objektum keletkezik, még akkor is, ha az objektumokat generáló parancs aSelect-Object
parancs előtt jelenik meg a csővezetékben. Az optimalizáló viselkedés kikapcsolásához használja a Waitparamétert.
Examples
Example 1: Select objects by property
This example creates objects that have the Name, ID, and working set (ws) properties ofprocess objects.
Get-Process | Select-Object -Property ProcessName, Id, WS
2.példa: Objektumok kiválasztása tulajdonság szerint és az eredmények formázása
Ez a példa információkat kap a számítógép folyamataiban használt modulokról. Ez használGet-Process
cmdlet, hogy a folyamat a számítógépen.
a Select-Object
cmdlet használatával a példányok tömbjét adja ki az egyes
System.Diagnostics.Process
instanceoutput by Get-Process
.
a Select-Object
cmdlet Tulajdonságparamétere kiválasztja a folyamatneveket. Ez hozzáad egyProcessName
NoteProperty minden példány és populatesit értékével aktuális folyamat ProcessName tulajdonság.
végül aFormat-List
cmdlet az egyes folyamatok nevét és moduljait egy listában jeleníti meg.
3. példa: válassza ki a folyamatokat a legtöbb memóriával
Ez a példa megkapja a legtöbb memóriát használó öt folyamatot. A Get-Process
cmdlet gets the processes on the computer. ASort-Object
cmdlet a folyamatokat a memória(working set) használata szerint rendezi, a Select-Object
cmdlet csak az objektumok utolsó öt tagját választja ki.
A várakozási paraméter nem szükséges olyan parancsokban, amelyek tartalmazzák a Sort-Object
cmdlet mertSort-Object
feldolgozza az összes objektumot, majd visszaad egy gyűjteményt. A Select-Object
optimizationis csak olyan parancsok esetén érhető el, amelyek feldolgozásuk során egyenként visszaküldik az objektumokat.
4. példa: Válasszon egyedi karaktereket egy
tömbből ez a példa a Select-Object
egyedi paramétereit használja, hogy egyedi karaktereket kapjon egy arrayof karakterből.
"a","b","c","a","a","a" | Select-Object -Uniqueabc
5.példa: válassza ki az Eseménynapló legújabb és legrégebbi eseményeit
Ez a példa lesz az első (legújabb) és utolsó (legrégebbi) esemény A Windows PowerShell eseménynaplójában.
Get-EventLog
megkapja az összes eseményt a Windows PowerShell naplójában, és elmenti őket a $a
változóba.Ezután a $a
a Select-Object
parancsmagra kerül. ASelect-Object
parancs az Indexparaméterrel választja ki az eseményeket a$a
változóban. Az első esemény indexe 0. Az utolsó esemény indexe a $a
mínusz 1 elemek száma.
$a = Get-EventLog -LogName "Windows PowerShell"$a | Select-Object -Index 0, ($A.count - 1)
6.példa: az összes kijelölése az első objektum kivételével
Ez a példa új PSSession-t hoz létre a kiszolgálókon felsorolt összes számítógépen.txt fájlok, kivéve az elsőt.
Select-Object
kiválasztja az összes, de az első számítógép egy listát a számítógép nevét. A kapott listof számítógépek értéke a New-PSSession
cmdlet ComputerName paraméter értéke.
New-PSSession -ComputerName (Get-Content Servers.txt | Select-Object -Skip 1)
7.példa: nevezze át a fájlokat, és válasszon többet a
áttekintéshez ez a példa”- ro ” utótagot ad a csak olvasható attribútummal rendelkező szöveges fájlok alapneveihez, majd megjeleníti az első öt fájlt, így a felhasználó láthatja a hatás mintáját.
Get-ChildItem
A Csak olvasható dinamikus paramétert használja a csak olvasható fájlok eléréséhez. Az így kapott fájlok a Rename-Item
cmdlet-re vannak átirányítva, amely átnevezi a fájlt. ARename-Item
Passthru paraméterével elküldi az átnevezett fájlokat a Select-Object
cmdlet-re, amely kiválasztja az első 5 fordisplay-t.
aSelect-Object
várakozási paraméter megakadályozza, hogy a PowerShell megállítsa aGet-ChildItem
cmdlet-t, miután megkapja az első öt csak olvasható szöveges fájlt. E paraméter nélkül csak az elsőöt csak olvasható fájlt átneveznének.
Get-ChildItem *.txt -ReadOnly | Rename-Item -NewName {$_.BaseName + "-ro.txt"} -PassThru | Select-Object -First 5 -Wait
8. példa: Mutassa be a-ExpandProperty paraméter
bonyolultságát ez a példa bemutatja az ExpandProperty paraméter bonyolultságát.
vegye figyelembe, hogy a generált kimenet példányok tömbje volt. A példányok megfelelneka kimeneti nézet szabványos formázási szabályai. Ez igaz minden kibővített tulajdonságra. Ha az outputted objektumok meghatározott szabványos formátummal rendelkeznek, előfordulhat, hogy a kibővített tulajdonság nem látható.
# 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
9. példa: Egyéni tulajdonságok létrehozása
objektumokon a következő példa bemutatja a Select-Object
egyéni tulajdonság hozzáadását bármely objektumhoz.Ha megad egy nem létező tulajdonságnevet, akkor aSelect-Object
létrehozza azt a tulajdonságot, mint aNoteProperty minden átadott objektumon.
10. példa: számított tulajdonságok létrehozása minden InputObject
Ez a példa a Select-Object
használatával mutatja be a számított tulajdonságok hozzáadását a bemenethez. Passinga ScriptBlock a tulajdonság paraméter okozSelect-Object
, hogy értékelje a kifejezés oneach objektum telt hozzá az eredményeket a kimenet. A Scriptblockon belül a$_
változót használhatja a csővezeték aktuális objektumának hivatkozásához.
alapértelmezés szerint aSelect-Object
A ScriptBlock karakterláncot használja a tulajdonság neveként. Az aHashtable használatával címkézheti a ScriptBlock kimenetét egyéni tulajdonságként, amelyet az eachobjecthez ad hozzá. A Select-Object
objektumokhoz több kiszámított tulajdonságot is hozzáadhat.
paraméterek
meghatározza azokat a tulajdonságokat, amelyeket ez a cmdlet kizár a műveletből. Helyettesítő karakterek megengedettek.
kezdve PowerShell 6, ez már nem szükséges, hogy tartalmazza a tulajdonság paraméter forExcludeProperty dolgozni.
Típus: | String |
Beosztása: | Nevű |
Alapértelmezett érték: | Nem |
Elfogadni vezeték bemenet: | False |
Elfogadni helyettesítő karakterek: | True |
- ha a megadott tulajdonság egy tömb, akkor a tömb minden értéke szerepel a kimeneten.
- ha a megadott tulajdonság objektum, akkor az objektumok tulajdonságai minden esetben kibővülnek az everyInputObject
esetén, az objektumok kimenete megegyezik a kibővített tulajdonság típusával.
Ha a Tulajdonságparaméter meg van adva, a Select-Object
megpróbálja hozzáadni minden kiválasztott tulajdonságotproperty mint NoteProperty minden outputted objektumhoz.
Warning
Ha a hibaüzenet jelenik meg: Select : a tulajdonság nem dolgozható fel, mert a<PropertyName>
tulajdonság már létezik, vegye figyelembe a következőket.Ne feledje, hogy ha a -ExpandProperty
Select-Object
nem helyettesítheti a meglévő tulajdonság.Ez azt jelenti:
- ha a kibővített objektum azonos nevű tulajdonsággal rendelkezik, hiba lép fel.
- ha a kijelölt objektumnak ugyanaz a tulajdonsága van, mint egy kibővített objektum tulajdonságnak, akkor anerror lép fel.
Típus: | String |
Beosztása: | Nevű |
Alapértelmezett érték: | Nem |
Elfogadni vezeték bemenet: | False |
Elfogadja a helyettesítő karakterek használatát: | False |
Megadja, hogy az objektumok száma, hogy válasszon az elején egy sor bemeneti tárgyakat.
Típus: | Int32 |
Beosztása: | Nevű |
Alapértelmezett érték: | Nem |
Elfogadni vezeték bemenet: | False |
Elfogadja a helyettesítő karaktereket: | False |
Kiválasztja tárgyak egy tömb alapján az index értékeket. Írja be az indexeket vesszővel elválasztottlistát. Az indexek egy tömbben 0-val kezdődnek, ahol a 0 az első értéket, az (n-1) pedig az utolsó értéket jelenti.
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
.
amikor objektumokat ad át az InputObject paraméternek, a pipeline használata helyett a Select-Object
az InputObject-et egyetlen objektumként kezeli, még akkor is, ha az érték gyűjtemény. Itis javasoljuk, hogy használja a csővezetéket, amikor átadják gyűjtemények Select-Object
.
Típus: | PSObject |
Beosztása: | Nevű |
Alapértelmezett érték: | Nem |
Elfogadni vezeték bemenet: | True |
Elfogadni helyettesítő karakterek: | 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. Ezek a tulajdonságok kerülnek hozzáadásra NoteProperty tagok theoutput objektumok. Helyettesítő karakterek megengedettek.
a Tulajdonságparaméter értéke lehet egy új számított tulajdonság. Számított tulajdonság létrehozásához használjon hash táblát.
érvényes kulcsok:
- név (vagy címke) –
<string>
- kifejezés –
<string>
vagy<script block>
seeabout_calculated_properties.
Típus: | objektum |
pozíció: | 0 |
alapértelmezett érték: | None |
pipeline input elfogadása: | False |
fogadja el a helyettesítő karaktereket: | True |
az Indexparaméterrel ellentétben, amely 0-nál kezdődik, a Skip paraméter 1-nél kezdődik.
Típus: | 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 |
kihagyja a megadott számú elemet a lista vagy tömb végétől. Ugyanúgy működik, mint a Skip használata az utolsó paraméterrel együtt.
az Indexparaméterrel ellentétben, amely 0-nál kezdődik, a SkipLast paraméter 1-nél kezdődik.
Típus: | Int32 | |
pozíció: | ||
alapértelmezett érték: | None | |
: | False | |
helyettesítő karakterek elfogadása: | False |
meghatározza, hogy ha a beviteli objektumok egy részhalmaza azonos tulajdonságokkal és értékekkel rendelkezik, akkor csak az alcsoport egy tagja kerül kiválasztásra.
Ez a paraméter eset-érzékeny. Ennek eredményeként, húrok, amelyek különböznek csak a karakter burkolat areconsided, hogy egyedi.
Típus: | SwitchParameter |
pozíció: | |
alapértelmezett érték: | None |
pipeline input elfogadása: | False |
fogadja el a helyettesítő karaktereket: | False |
Select-Object
parancsot tartalmaz az első vagy Indexparaméterekkel egy parancsvezetékben, a Powershellmegállítja azt a parancsot, amely az objektumokat generálja, amint a kiválasztott objektumok száma létrejön.
ezt a paramétert a Windows PowerShell 3.0-ban vezették be.
Típus: | SwitchParameter | |
pozíció: | Named | |
alapértelmezett érték: | None | |
hamis | ||
helyettesítő karakterek elfogadása: | False |
Inputs
PSObject
bármely objektumotSelect-Object
– re lehet pipálni.
kimenetek
PSObject
Megjegyzések
-
hivatkozhat a
Select-Object
cmdlet beépített álnévvel,select
. További információért lásd: about_Aliases. -
a
Select-Object
optimalizálási funkciója csak olyan parancsok esetén érhető el, amelyek az objektumokat írjáka csővezeték feldolgozása során. Nincs hatással a parancsokra, amelyek pufferelik a feldolgozott objektumokat ésírja őket gyűjteményként. Írásban tárgyak azonnal egy cmdlet design legjobb gyakorlat. További információért lásd: egyetlen rekord írása a csővezetékhez inStrongly ösztönözte a fejlesztési irányelveket.
- about_Calculated_Properties
- Group-Object
- Rendezés-Object
- hol-Object