Select-Object
Wählt Objekte oder Objekteigenschaften aus.
Syntax
DefaultParameter (Standardwert)
Select-Object
[[-Property] <Object[]>]
[-InputObject <PSObject>]
[-ExcludeProperty <String[]>]
[-ExpandProperty <String>]
[-Unique]
[-CaseInsensitive]
[-Last <Int32>]
[-First <Int32>]
[-Skip <Int32>]
[-Wait]
[<CommonParameters>]
SkipLastParameter
Select-Object
[[-Property] <Object[]>]
[-InputObject <PSObject>]
[-ExcludeProperty <String[]>]
[-ExpandProperty <String>]
[-Unique]
[-CaseInsensitive]
[-Skip <Int32>]
[-SkipLast <Int32>]
[<CommonParameters>]
IndexParameter
Select-Object
[-InputObject <PSObject>]
[-Unique]
[-CaseInsensitive]
[-Wait]
[-Index <Int32[]>]
[<CommonParameters>]
SkipIndexParameter
Select-Object
[-InputObject <PSObject>]
[-Unique]
[-CaseInsensitive]
[-SkipIndex <Int32[]>]
[<CommonParameters>]
Beschreibung
Das cmdlet Select-Object wählt die angegebenen Eigenschaften eines Objekts oder einer Gruppe von Objekten aus. Sie kann auch eindeutige Objekte, eine bestimmte Anzahl von Objekten oder Objekte an einer angegebenen Position in einem Array auswählen.
Um Objekte aus einer Auflistung auszuwählen, verwenden Sie die Parameter First, Last, Unique, Skipund Index Parameter. Verwenden Sie zum Auswählen von Objekteigenschaften den Parameter Property. Wenn Sie Eigenschaften auswählen, gibt Select-Object neue Objekte zurück, die nur über die angegebenen Eigenschaften verfügen.
Ab Windows PowerShell 3.0 enthält Select-Object ein Optimierungsfeature, das verhindert, dass Befehle Objekte erstellen und verarbeiten, die nicht verwendet werden.
Wenn Sie Select-Object mit den Parametern First oder Index in einer Befehlspipeline verwenden, beendet PowerShell den Befehl, der die Objekte generiert, sobald die ausgewählte Anzahl von Objekten erreicht ist. Verwenden Sie zum Deaktivieren dieses Optimierungsverhaltens den Parameter Wait.
Beispiele
Beispiel 1: Auswählen von Objekten nach Eigenschaft
In diesem Beispiel werden Objekte erstellt, die über die Eigenschaften Name, IDund Arbeitssatz (WS) von Prozessobjekten verfügen.
Get-Process | Select-Object -Property ProcessName, Id, WS
Beispiel 2: Auswählen von Objekten nach Eigenschaft und Formatieren der Ergebnisse
In diesem Beispiel werden Informationen zu den Modulen, die von den Prozessen auf dem Computer verwendet werden, erfasst. Es verwendet Get-Process Cmdlet, um den Prozess auf dem Computer abzurufen.
Es verwendet das Cmdlet Select-Object, um ein Array von [System.Diagnostics.ProcessModule] Instanzen auszugeben, die in der Modules--Eigenschaft der einzelnen System.Diagnostics.Process Instanzausgabe durch Get-Processenthalten sind.
Der parameter Property des cmdlets Select-Object wählt die Prozessnamen aus. Dadurch wird jeder ProcessName Instanz ein [System.Diagnostics.ProcessModule] hinzugefügt und mit dem Wert der ProcessName-Eigenschaft des aktuellen Prozesses aufgefüllt.
Schließlich wird Format-List Cmdlet verwendet, um den Namen und die Module der einzelnen Prozesse in einer Liste anzuzeigen.
Get-Process Explorer |
Select-Object -Property ProcessName -ExpandProperty Modules |
Format-List
ProcessName : explorer
ModuleName : explorer.exe
FileName : C:\WINDOWS\explorer.exe
BaseAddress : 140697278152704
ModuleMemorySize : 3919872
EntryPointAddress : 140697278841168
FileVersionInfo : File: C:\WINDOWS\explorer.exe
InternalName: explorer
OriginalFilename: EXPLORER.EXE.MUI
FileVersion: 10.0.17134.1 (WinBuild.160101.0800)
FileDescription: Windows Explorer
Product: Microsoft Windows Operating System
ProductVersion: 10.0.17134.1
...
Beispiel 3: Auswählen von Prozessen mit dem größten Arbeitsspeicher
In diesem Beispiel werden die fünf Prozesse, die den größten Arbeitsspeicher verwenden, ermittelt. Das Cmdlet Get-Process ruft die Prozesse auf dem Computer ab. Mit dem Cmdlet Sort-Object werden die Prozesse entsprechend der Speicherauslastung (Arbeitssatz) sortiert, und das cmdlet Select-Object wählt nur die letzten fünf Elemente des resultierenden Arrays von Objekten aus.
Der parameter "Wait" ist in Befehlen, die das cmdlet Sort-Object enthalten, nicht erforderlich, da Sort-Object alle Objekte verarbeitet und dann eine Auflistung zurückgibt. Die Select-Object Optimierung ist nur für Befehle verfügbar, die Objekte bei der Verarbeitung einzeln zurückgeben.
Get-Process | Sort-Object -Property WS | Select-Object -Last 5
Handles NPM(K) PM(K) WS(K) VS(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
2866 320 33432 45764 203 222.41 1292 svchost
577 17 23676 50516 265 50.58 4388 WINWORD
826 11 75448 76712 188 19.77 3780 Ps
1367 14 73152 88736 216 61.69 676 Ps
1612 44 66080 92780 380 900.59 6132 INFOPATH
Beispiel 4: Auswählen eindeutiger Zeichen aus einem Array
In diesem Beispiel wird der parameter Unique von Select-Object verwendet, um eindeutige Zeichen aus einem Array von Zeichen abzurufen.
"a","b","c","a","A","a" | Select-Object -Unique
a
b
c
A
Beispiel 5: Verwenden von "-Unique" mit anderen Parametern
Der Unique Parameter filtert Werte, nachdem andere Select-Object Parameter angewendet wurden. Wenn Sie beispielsweise den Parameter First verwenden, um die erste Anzahl von Elementen in einem Array auszuwählen, wird Unique nur auf die ausgewählten Werte und nicht auf das gesamte Array angewendet.
"a","a","b","c" | Select-Object -First 2 -Unique
a
In diesem Beispiel wählt First"a","a" als die ersten zwei Elemente im Array aus.
Unique wird auf "a","a" angewendet und gibt a als eindeutigen Wert zurück.
Beispiel 6: Auswählen eindeutiger Zeichenfolgen mithilfe des Parameters "-CaseInsensitive"
In diesem Beispiel werden Vergleiche verwendet, bei denen die Groß-/Kleinschreibung keine Rolle spielt, um eindeutige Zeichenketten aus einer Reihe von Zeichenketten zu erhalten.
"aa", "Aa", "Bb", "bb" | Select-Object -Unique -CaseInsensitive
aa
Bb
Beispiel 7: Auswählen der neuesten und ältesten Ereignisse im Ereignisprotokoll
In diesem Beispiel werden die ersten (neuesten) und letzten (ältesten) Ereignisse im Windows PowerShell-Ereignisprotokoll angezeigt.
Get-WinEvent ruft alle Ereignisse im Windows PowerShell-Protokoll ab und speichert sie in der variablen $a.
Anschließend wird $a an das cmdlet Select-Object weitergeleitet. Der Befehl Select-Object verwendet den Parameter Index, um Ereignisse aus dem Array von Ereignissen in der variablen $a auszuwählen. Der Index des ersten Ereignisses ist 0. Der Index des letzten Ereignisses ist die Anzahl der Elemente in $a minus 1.
$a = Get-WinEvent -LogName "Windows PowerShell"
$a | Select-Object -Index 0, ($a.Count - 1)
Beispiel 8: Auswählen aller Objekte außer dem ersten Objekt
In diesem Beispiel wird eine neue PSSession auf den einzelnen Computern erstellt, die in den Servers.txt-Dateien aufgeführt sind, mit Ausnahme der ersten.
Select-Object wählt alle Computer außer dem ersten Computer in einer Liste der Computernamen aus. Die resultierende Liste der Computer wird als Wert des ComputerName Parameter des Cmdlets New-PSSession festgelegt.
New-PSSession -ComputerName (Get-Content Servers.txt | Select-Object -Skip 1)
Beispiel 9: Umbenennen von Dateien und Auswählen mehrerer Dateien zum Überprüfen
In diesem Beispiel wird ein Suffix "-ro" zu den Basisnamen von Textdateien hinzugefügt, die über das schreibgeschützte Attribut verfügen, und dann die ersten fünf Dateien angezeigt, damit der Benutzer ein Beispiel für den Effekt sehen kann.
Get-ChildItem verwendet den ReadOnly dynamischen Parameter, um schreibgeschützte Dateien abzurufen. Die resultierenden Dateien werden an das Cmdlet Rename-Item weitergeleitet, das die Datei umbenennt. Es verwendet den PassThru Parameter von Rename-Item, um die umbenannten Dateien an das Cmdlet Select-Object zu senden, das die ersten 5 für die Anzeige auswählt.
Der parameter Wait von Select-Object verhindert, dass PowerShell das cmdlet Get-ChildItem beendet, nachdem die ersten fünf schreibgeschützten Textdateien abgerufen wurden. Ohne diesen Parameter würden nur die ersten fünf schreibgeschützten Dateien umbenannt.
Get-ChildItem *.txt -ReadOnly |
Rename-Item -NewName {$_.BaseName + "-ro.txt"} -PassThru |
Select-Object -First 5 -Wait
Beispiel 10: Anzeigen der Ungenauigkeiten des -ExpandProperty-Parameters
Dieses Beispiel zeigt die Ungenauigkeiten des ExpandProperty--Parameters.
Beachten Sie, dass die generierte Ausgabe ein Array von [System.Int32] Instanzen war. Die Instanzen entsprechen den Standardformatierungsregeln der Ausgabeansicht. Dies gilt für alle Expanded-Eigenschaften. Wenn die ausgegebenen Objekte ein bestimmtes Standardformat aufweisen, ist die erweiterte Eigenschaft möglicherweise nicht sichtbar.
# Create a custom object to use for the Select-Object example.
$object = [pscustomobject]@{Name="CustomObject";List=@(1,2,3,4,5)}
# Use the ExpandProperty parameter to Expand the property.
$object | Select-Object -ExpandProperty List -Property Name
1
2
3
4
5
# 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 List -Property Name | Get-Member -MemberType Properties
TypeName: System.Int32
Name MemberType Definition
---- ---------- ----------
Name NoteProperty string Name=CustomObject
Beispiel 11: Erstellen benutzerdefinierter Eigenschaften für Objekte
Im folgenden Beispiel wird die Verwendung von Select-Object zum Hinzufügen einer benutzerdefinierten Eigenschaft zu einem beliebigen Objekt veranschaulicht.
Wenn Sie einen Eigenschaftennamen angeben, der nicht vorhanden ist, erstellt Select-Object diese Eigenschaft als NoteProperty- für jedes übergebene Objekt.
$customObject = 1 | Select-Object -Property MyCustomProperty
$customObject.MyCustomProperty = "New Custom Property"
$customObject
MyCustomProperty
----------------
New Custom Property
Beispiel 12: Erstellen berechneter Eigenschaften für jedes InputObject
In diesem Beispiel wird die Verwendung von Select-Object zum Hinzufügen berechneter Eigenschaften zu Ihrer Eingabe veranschaulicht. Das Übergeben eines ScriptBlock- an den parameter Property bewirkt, dass Select-Object den Ausdruck für jedes übergebene Objekt auswerten und die Ergebnisse zur Ausgabe hinzufügen. Innerhalb des ScriptBlock-können Sie die $_ Variable verwenden, um auf das aktuelle Objekt in der Pipeline zu verweisen.
Standardmäßig verwendet Select-Object die ScriptBlock- Zeichenfolge als Namen der Eigenschaft. Mithilfe einer Hashtable-können Sie die Ausgabe Ihres ScriptBlock- als benutzerdefinierte Eigenschaft bezeichnen, die jedem Objekt hinzugefügt wird. Sie können jedem Objekt, das an Select-Objectübergeben wird, mehrere berechnete Eigenschaften hinzufügen.
# Create a calculated property called $_.StartTime.DayOfWeek
Get-Process | Select-Object -Property ProcessName,{$_.StartTime.DayOfWeek}
ProcessName $_.StartTime.DayOfWeek
---- ----------------------
alg Wednesday
ati2evxx Wednesday
ati2evxx Thursday
...
# Add a custom property to calculate the size in KiloBytes of each FileInfo
# object you pass in. Use the pipeline variable to divide each file's length by
# 1 KiloBytes
$size = @{Label="Size(KB)";Expression={$_.Length/1KB}}
# Create an additional calculated property with the number of Days since the
# file was last accessed. You can also shorten the key names to be 'l', and 'e',
# or use Name instead of Label.
$days = @{l="Days";e={((Get-Date) - $_.LastAccessTime).Days}}
# You can also shorten the name of your label key to 'l' and your expression key
# to 'e'.
Get-ChildItem $PSHOME -File | Select-Object Name, $size, $days
Name Size(KB) Days
---- -------- ----
Certificate.format.ps1xml 12.5244140625 223
Diagnostics.Format.ps1xml 4.955078125 223
DotNetTypes.format.ps1xml 134.9833984375 223
Beispiel 13: Auswählen von Hashtableschlüsseln ohne Verwendung berechneter Eigenschaften
Ab PowerShell 6 unterstützt Select-Object das Auswählen der Schlüssel Hashtable- Eingabe als Eigenschaften. Im folgenden Beispiel werden die weight und name Tasten auf einer Eingabehashtabelle ausgewählt und die Ausgabe angezeigt.
@{ name = 'a' ; weight = 7 } | Select-Object -Property name, weight
name weight
---- ------
a 7
Beispiel 14: ExpandProperty ändert das ursprüngliche Objekt.
In diesem Beispiel wird der Nebeneffekt der Verwendung des ExpandProperty-Parameters veranschaulicht. Wenn Sie ExpandProperty-verwenden, fügt Select-Object die ausgewählten Eigenschaften dem ursprünglichen Objekt als NoteProperty Member hinzu.
PS> $object = [pscustomobject]@{
name = 'USA'
children = [pscustomobject]@{
name = 'Southwest'
}
}
PS> $object
name children
---- --------
USA @{name=Southwest}
# Use the ExpandProperty parameter to expand the children property
PS> $object | Select-Object @{n="country"; e={$_.name}} -ExpandProperty children
name country
---- -------
Southwest USA
# The original object has been altered
PS> $object
name children
---- --------
USA @{name=Southwest; country=USA}
Wie Sie sehen können, wurde die eigenschaft land dem children object hinzugefügt, nachdem der parameter ExpandProperty verwendet wurde.
Beispiel 15: Erstellen eines neuen Objekts mit erweiterten Eigenschaften ohne Ändern des Eingabeobjekts
Sie können die Nebenwirkung der Verwendung des ExpandProperty-Parameters vermeiden, indem Sie ein neues Objekt erstellen und die Eigenschaften aus dem Eingabeobjekt kopieren.
PS> $object = [pscustomobject]@{
name = 'USA'
children = [pscustomobject]@{
name = 'Southwest'
}
}
PS> $object
name children
---- --------
USA @{name=Southwest}
# Create a new object with selected properties
PS> $newObject = [pscustomobject]@{
country = $object.name
children = $object.children
}
PS> $newObject
country children
------- --------
USA @{name=Southwest}
# $object remains unchanged
PS> $object
name children
---- --------
USA @{name=Southwest}
Beispiel 16: Verwenden von Wildcards mit dem parameter -ExpandProperty
In diesem Beispiel wird die Verwendung von Wildcards mit dem ExpandProperty-Parameter veranschaulicht. Das Wildcardzeichen muss in einen einzelnen Eigenschaftsnamen aufgelöst werden. Wenn das Wildcardzeichen in mehr als einen Eigenschaftsnamen aufgelöst wird, Select-Object wird ein Fehler zurückgegeben.
# Create a custom object.
$object = [pscustomobject]@{
Label = "MyObject"
Names = @("John","Jane","Joe")
Numbers = @(1,2,3,4,5)
}
# Try to expand multiple properties using a wildcard.
$object | Select-Object -ExpandProperty N*
Select-Object: Multiple properties cannot be expanded.
# Use a wildcard that resolves to a single property.
$object | Select-Object -ExpandProperty Na*
John
Jane
Joe
Parameter
-CaseInsensitive
Wenn Sie den Parameter "Unique" verwenden, verwendet das Cmdlet standardmäßig Vergleiche mit Groß-/Kleinschreibung. Wenn Sie diesen Parameter verwenden, führt das Cmdlet Vergleiche durch, die , die nicht zwischen Groß- und Kleinschreibung unterscheiden.
Dieser Parameter wurde in PowerShell 7.4 hinzugefügt.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | False |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-ExcludeProperty
Gibt die Eigenschaften an, die dieses Cmdlet vom Vorgang ausschließt. Wildcards sind zulässig.
Ab PowerShell 6 ist es nicht mehr erforderlich, den parameter Property einzuschließen, damit ExcludeProperty- funktionieren.
Parametereigenschaften
| Typ: | String[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | True |
| Nicht anzeigen: | False |
Parametersätze
DefaultParameter
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
SkipLastParameter
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-ExpandProperty
Gibt eine auszuwählende Eigenschaft an und gibt an, dass versucht werden soll, diese Eigenschaft zu erweitern. Wenn die Eingabeobjektpipeline die Eigenschaft nicht benannt hat, gibt Select-Object einen Fehler zurück. Dieser Parameter unterstützt Wildcards. Das Wildcardzeichen muss jedoch in einen einzelnen Eigenschaftsnamen aufgelöst werden. Wenn das Wildcardzeichen in mehr als einen Eigenschaftsnamen aufgelöst wird, Select-Object wird ein Fehler zurückgegeben.
Wenn Sie ExpandProperty verwenden, wird versucht, Select-Object die angegebene Eigenschaft für jedes Objekt zu erweitern.
- Wenn es sich bei der angegebenen Eigenschaft um ein Array handelt, wird jeder Wert des Arrays in der Ausgabe enthalten.
- Wenn es sich bei der angegebenen Eigenschaft um ein Objekt handelt, werden die Objekteigenschaften für jedes InputObject- erweitert.
In beiden Fällen entspricht der Type- der ausgabeobjekte dem Typeder erweiterten Eigenschaft. Bei Verwendung von ExpandProperty-gibt es einen Nebeneffekt. Die Select-Object fügt dem ursprünglichen Objekt die ausgewählten Eigenschaften als NoteProperty Member hinzu.
Wenn der parameter Property angegeben ist, versucht Select-Object, jede ausgewählte Eigenschaft als NoteProperty- zu jedem ausgegebenen Objekt hinzuzufügen.
Warnung
Wenn Sie einen Fehler erhalten, dass eine Eigenschaft nicht verarbeitet werden kann, da eine Eigenschaft mit diesem Namen bereits vorhanden ist, beachten Sie Folgendes. Beachten Sie, dass bei Verwendung von Select-Objectkeine vorhandene Eigenschaft ersetzen kann. Dies bedeutet:
- Wenn das erweiterte Objekt über eine Eigenschaft mit demselben Namen verfügt, gibt der Befehl einen Fehler zurück.
- Wenn das Selected-Objekt eine Eigenschaft mit demselben Namen wie die Eigenschaft eines Expanded-Objekts aufweist, gibt der Befehl einen Fehler zurück.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | True |
| Nicht anzeigen: | False |
Parametersätze
DefaultParameter
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
SkipLastParameter
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-First
Gibt die Anzahl der Objekte an, die am Anfang eines Arrays von Eingabeobjekten ausgewählt werden sollen.
Parametereigenschaften
| Typ: | Int32 |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
DefaultParameter
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Index
Wählt Objekte aus einem Array basierend auf ihren Indexwerten aus. Geben Sie die Indizes in einer durch Trennzeichen getrennten Liste ein. Indizes in einem Array beginnen mit 0, wobei 0 den ersten Wert darstellt und (n-1) den letzten Wert darstellt.
Parametereigenschaften
| Typ: | Int32[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
IndexParameter
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-InputObject
Gibt Objekte an, die über die Pipeline an das Cmdlet gesendet werden sollen. Mit diesem Parameter können Sie Objekte an Select-Objectübergeben.
Wenn Sie Objekte an den parameter InputObject übergeben, anstatt die Pipeline zu verwenden, behandelt Select-Object die InputObject- als einzelnes Objekt, auch wenn der Wert eine Auflistung ist. Es wird empfohlen, die Pipeline zu verwenden, wenn Sie Sammlungen an Select-Objectübergeben.
Parametereigenschaften
| Typ: | PSObject |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Last
Gibt die Anzahl der Objekte an, die am Ende eines Arrays von Eingabeobjekten ausgewählt werden sollen.
Parametereigenschaften
| Typ: | Int32 |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
DefaultParameter
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Property
Gibt die auszuwählenden Eigenschaften an. Diese Eigenschaften werden als NoteProperty Member zu den Ausgabeobjekten hinzugefügt. Wildcards sind zulässig. Wenn das Eingabeobjekt die Eigenschaft nicht benannt hat, wird der Wert des neuen NoteProperty- auf $nullfestgelegt.
Der Wert des Property-Parameters kann eine neue berechnete Eigenschaft sein. Verwenden Sie zum Erstellen einer berechneten Eigenschaft eine Hashtabelle.
Gültige Schlüssel sind:
- Name (oder Bezeichnung) –
<string> - Ausdruck –
<string>oder<script block>
Weitere Informationen finden Sie unter about_Calculated_Properties.
Parametereigenschaften
| Typ: | Object[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | True |
| Nicht anzeigen: | False |
Parametersätze
DefaultParameter
| Position: | 0 |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
SkipLastParameter
| Position: | 0 |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Skip
Überspringt (wählt nicht) die angegebene Anzahl von Elementen aus. Standardmäßig zählt der Skip Parameter vom Anfang der Auflistung von Objekten. Wenn der Befehl den Parameter Last verwendet, wird er vom Ende der Auflistung zählt.
Im Gegensatz zum Index Parameter, der mit 0 beginnt, beginnt der Skip Parameter bei 1.
Ab PowerShell 7.4 können Sie den Parameter Skip mit dem Parameter SkipLast verwenden, um Elemente sowohl am Anfang als auch am Ende der Auflistung zu überspringen.
Parametereigenschaften
| Typ: | Int32 |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
DefaultParameter
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-SkipIndex
Überspringt die Objekte aus einem Array basierend auf ihren Indexwerten (wählt sie nicht aus). Geben Sie die Indizes in einer durch Trennzeichen getrennten Liste ein. Indizes in einem Array beginnen mit 0, wobei 0 den ersten Wert darstellt und (n-1) den letzten Wert darstellt.
Dieser Parameter wurde in Windows PowerShell 6.0 eingeführt.
Parametereigenschaften
| Typ: | Int32[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
SkipIndexParameter
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-SkipLast
Überspringt (wählt nicht) die angegebene Anzahl von Elementen am Ende der Liste oder des Arrays aus. Funktioniert auf die gleiche Weise wie die Verwendung von Skip zusammen mit Last Parameter.
Im Gegensatz zum Index Parameter, der mit 0 beginnt, beginnt der SkipLast Parameter bei 1.
Ab PowerShell 7.4 können Sie den Parameter Skip mit dem Parameter SkipLast verwenden, um Elemente sowohl am Anfang als auch am Ende der Auflistung zu überspringen.
Parametereigenschaften
| Typ: | Int32 |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
SkipLastParameter
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Unique
Gibt an, dass nur ein einzelnes Element der Teilmenge der Eingabeobjekte ausgewählt werden soll, wenn eine Teilmenge der Eingabeobjekte identische Eigenschaften und Werte aufweist.
Eindeutige wählt Werte aus, nachdem anderen Filterparametern angewendet wurden.
Bei diesem Parameter wird die Groß-/Kleinschreibung beachtet. Daher gelten Zeichenfolgen, die sich nur im Hinblick auf die Groß-/Kleinschreibung unterscheiden, als eindeutig. Fügen Sie den parameter CaseInsensitive hinzu, um Vergleiche zwischen Groß- und Kleinschreibung durchzuführen.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Wait
Gibt an, dass das Cmdlet die Optimierung deaktiviert. PowerShell führt Befehle in der Reihenfolge aus, in der sie in der Befehlspipeline angezeigt werden, und ermöglicht ihnen das Generieren aller Objekte. Wenn Sie standardmäßig einen Select-Object Befehl in die Parameter First oder Index in eine Befehlspipeline einschließen, beendet PowerShell den Befehl, der die Objekte generiert, sobald die ausgewählte Anzahl von Objekten generiert wird.
Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
DefaultParameter
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
IndexParameter
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CommonParameters
Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.
Eingaben
PSObject
Sie können Objekte an dieses Cmdlet weiterleiten.
Ausgaben
PSObject
Dieses Cmdlet gibt die Eingabeobjekte nur mit den ausgewählten Eigenschaften zurück.
Hinweise
PowerShell enthält die folgenden Aliase für Select-Object:
- Alle Plattformen:
select
Das Optimierungsfeature von Select-Object ist nur für Befehle verfügbar, die Objekte während der Verarbeitung in die Pipeline schreiben. Sie wirkt sich nicht auf Befehle aus, die verarbeitete Objekte puffern und als Sammlung schreiben. Das sofortige Schreiben von Objekten ist eine bewährte Methode für das Cmdlet-Design. Weitere Informationen finden Sie unter Schreiben einzelner Datensätze in die Pipeline- in stark geförderten Entwicklungsrichtlinien.