Where-Object
Wybiera obiekty z kolekcji na podstawie ich wartości właściwości.
Składnia
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
[-EQ]
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-FilterScript] <ScriptBlock>
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-Match
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-CEQ
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-NE
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-CNE
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-GT
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-CGT
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-LT
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-CLT
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-GE
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-CGE
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-LE
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-CLE
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-Like
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-CLike
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-NotLike
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-CNotLike
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-CMatch
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-NotMatch
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-CNotMatch
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-Contains
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-CContains
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-NotContains
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-CNotContains
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-In
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-CIn
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-NotIn
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-CNotIn
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-Is
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
[[-Value] <Object>]
-IsNot
[<CommonParameters>]
Where-Object
[-InputObject <PSObject>]
[-Property] <String>
-Not
[<CommonParameters>]
Opis
Polecenie Where-Object
cmdlet wybiera obiekty, które mają określone wartości właściwości z kolekcji obiektów, które są do niego przekazywane. Można na przykład użyć Where-Object
polecenia cmdlet , aby wybrać pliki, które zostały utworzone po określonej dacie, zdarzenia z określonym identyfikatorem lub komputery, które używają określonej wersji systemu Windows.
Począwszy od programu Windows PowerShell 3.0, istnieją dwa różne sposoby konstruowania Where-Object
polecenia.
Blok skryptu. Blok skryptu umożliwia określenie nazwy właściwości, operatora porównania i wartości właściwości.
Where-Object
Zwraca wszystkie obiekty, dla których instrukcja bloku skryptu ma wartość true.Na przykład następujące polecenie pobiera procesy w klasie priorytetu
Normal
, czyli procesy, w których wartość właściwości PriorityClass jestNormal
równa .Get-Process | Where-Object {$_.PriorityClass -eq "Normal"}
Wszystkie operatory porównania programu PowerShell są prawidłowe w formacie bloku skryptu. Aby uzyskać więcej informacji, zobacz about_Comparison_Operators.
Instrukcja porównania. Możesz również napisać instrukcję porównania, która jest znacznie bardziej podobna do języka naturalnego. Instrukcje porównania zostały wprowadzone w programie Windows PowerShell 3.0.
Na przykład następujące polecenia pobierają również procesy, które mają klasę priorytetu .
Normal
Te polecenia są równoważne i można ich używać zamiennie.Get-Process | Where-Object -Property PriorityClass -EQ -Value "Normal"
Get-Process | Where-Object PriorityClass -EQ "Normal"
Począwszy od programu Windows PowerShell 3.0,
Where-Object
dodaje operatory porównania jako parametry w poleceniuWhere-Object
. O ile nie określono, wszystkie operatory nie są uwzględniane wielkości liter. Przed programem Windows PowerShell 3.0 operatory porównania w języku programu PowerShell były używane tylko w blokach skryptów.
Po podaniu pojedynczej właściwości do Where-Object
polecenia cmdlet traktuje wartość właściwości jako wyrażenie logiczne. Jeśli wartość właściwości Length nie jest równa zero, wyrażenie zwraca wartość $true
. Na przykład: ('hi', '', 'there') | Where-Object Length
.
Poprzedni przykład jest funkcjonalnie równoważny:
('hi', '', 'there') | Where-Object Length -GT 0
('hi', '', 'there') | Where-Object { $_.Length -gt 0 }
Aby uzyskać więcej informacji na temat sposobu oceniania wartości logicznych przez program PowerShell, zobacz about_Booleans.
Przykłady
Przykład 1. Pobieranie zatrzymanych usług
Te polecenia pobierają listę wszystkich zatrzymanych usług. Zmienna automatyczna $_
reprezentuje każdy obiekt przekazany do Where-Object
polecenia cmdlet.
Pierwsze polecenie używa formatu bloku skryptu, drugie polecenie używa formatu instrukcji porównania. Polecenia filtrować usługi w taki sam sposób i zwracać te same dane wyjściowe. Tylko składnia jest inna.
Get-Service | Where-Object { $_.Status -eq "Stopped" }
Get-Service | Where-Object Status -EQ "Stopped"
Przykład 2. Pobieranie procesów na podstawie zestawu roboczego
Te polecenia zawierają listę procesów, które mają zestaw roboczy większy niż 250 megabajtów (MB). Polecenia filtruje procesy w taki sam sposób i zwracają te same dane wyjściowe. Tylko składnia jest inna.
Get-Process | Where-Object { $_.WorkingSet -GT 250MB }
Get-Process | Where-Object WorkingSet -GT 250MB
Przykład 3. Pobieranie procesów na podstawie nazwy procesu
Te polecenia pobierają procesy, które mają wartość właściwości ProcessName rozpoczynającą się literą p
. Operator Dopasowanie umożliwia używanie dopasowań wyrażeń regularnych.
Polecenia filtruje procesy w taki sam sposób i zwracają te same dane wyjściowe. Tylko składnia jest inna.
Get-Process | Where-Object { $_.ProcessName -Match "^p.*" }
Get-Process | Where-Object ProcessName -Match "^p.*"
Przykład 4. Używanie formatu instrukcji porównania
W tym przykładzie pokazano, jak używać nowego formatu instrukcji Where-Object
porównania polecenia cmdlet.
Pierwsze polecenie używa formatu instrukcji porównania. Nie używa żadnych aliasów i nie zawiera nazwy dla każdego parametru.
Drugie polecenie jest bardziej naturalnym zastosowaniem formatu polecenia porównania. Polecenie zastępuje where
alias Where-Object
nazwy polecenia cmdlet i pomija wszystkie opcjonalne nazwy parametrów.
Polecenia filtruje procesy w taki sam sposób i zwracają te same dane wyjściowe. Tylko składnia jest inna.
Get-Process | Where-Object -Property Handles -GE -Value 1000
Get-Process | where Handles -GE 1000
Przykład 5. Pobieranie poleceń na podstawie właściwości
W tym przykładzie pokazano, jak napisać polecenia zwracające elementy, które są prawdziwe lub fałszywe, lub mają dowolną wartość dla określonej właściwości. W każdym przykładzie przedstawiono zarówno format instrukcji bloku skryptu, jak i instrukcji porównania dla polecenia .
Polecenia filtrują dane wejściowe w taki sam sposób i zwracają te same dane wyjściowe. Tylko składnia jest inna.
# Use Where-Object to get commands that have any value for the OutputType
# property of the command. This omits commands that do not have an OutputType
# property and those that have an OutputType property, but no property value.
Get-Command | Where-Object OutputType
Get-Command | Where-Object { $_.OutputType }
# Use Where-Object to get objects that are containers. This gets objects that
# have the **PSIsContainer** property with a value of $True and excludes all
# others.
Get-ChildItem | Where-Object PSIsContainer
Get-ChildItem | Where-Object { $_.PSIsContainer }
# Finally, use the -not operator (!) to get objects that are not containers.
# This gets objects that do have the **PSIsContainer** property and those
# that have a value of $False for the **PSIsContainer** property.
Get-ChildItem | Where-Object -Not PSIsContainer
Get-ChildItem | Where-Object { !$_.PSIsContainer }
Przykład 6. Używanie wielu warunków
Get-Module -ListAvailable | Where-Object {
($_.Name -notlike "Microsoft*" -and $_.Name -notlike "PS*") -and $_.HelpInfoUri
}
W tym przykładzie pokazano, jak utworzyć Where-Object
polecenie z wieloma warunkami.
To polecenie pobiera moduły inne niż podstawowe, które obsługują funkcję Pomoc z możliwością aktualizowania. Polecenie używa parametru Get-Module
ListAvailable polecenia cmdlet, aby pobrać wszystkie moduły na komputerze. Operator potoku (|
) wysyła moduły do Where-Object
polecenia cmdlet, które pobiera moduły, których nazwy nie zaczynają się Microsoft
od lub PS
, i ma wartość właściwości HelpInfoURI , która informuje program PowerShell, gdzie znaleźć zaktualizowane pliki pomocy dla modułu. Operator -and
logiczny łączy instrukcje porównania.
W przykładzie użyto formatu polecenia bloku skryptu. Operatory logiczne, takie jak -and
,-or
i -not
są prawidłowe tylko w blokach skryptów. Nie można ich używać w formacie instrukcji Where-Object
porównania polecenia.
- Aby uzyskać więcej informacji na temat operatorów logicznych programu PowerShell, zobacz about_Logical_Operators.
- Aby uzyskać więcej informacji na temat funkcji Updatable Help, zobacz about_Updatable_Help.
Parametry
-CContains
Wskazuje, że to polecenie cmdlet pobiera obiekty z kolekcji, jeśli wartość właściwości obiektu jest dokładnie zgodna z określoną wartością. Ta operacja uwzględnia wielkość liter.
Na przykład: Get-Process | Where-Object ProcessName -CContains "svchost"
.
CContains odnosi się do kolekcji wartości i ma wartość true, jeśli kolekcja zawiera element, który jest dokładnie zgodny z określoną wartością. Jeśli dane wejściowe są pojedynczym obiektem, program PowerShell konwertuje go na kolekcję jednego obiektu.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-CEQ
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest taka sama jak określona wartość. Ta operacja uwzględnia wielkość liter.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-CGE
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest większa lub równa określonej wartości. Ta operacja uwzględnia wielkość liter.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-CGT
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest większa niż określona wartość. Ta operacja uwzględnia wielkość liter.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-CIn
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości zawiera określoną wartość. Ta operacja uwzględnia wielkość liter.
Na przykład: Get-Process | Where-Object -Value "svchost" -CIn ProcessName
.
CIn przypomina CContains, z tą różnicą, że pozycje właściwości i wartości są odwrócone. Na przykład następujące instrukcje są prawdziwe.
"abc", "def" -CContains "abc"
"abc" -CIn "abc", "def"
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-CLE
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest mniejsza niż lub równa określonej wartości. Ta operacja uwzględnia wielkość liter.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-CLike
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości pasuje do wartości zawierającej symbole wieloznaczne (*
). Ta operacja uwzględnia wielkość liter.
Na przykład: Get-Process | Where-Object ProcessName -CLike "*host"
.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-CLT
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest mniejsza niż określona wartość. Ta operacja uwzględnia wielkość liter.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-CMatch
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest zgodna z określonym wyrażeniem regularnym. Ta operacja uwzględnia wielkość liter. Gdy dane wejściowe są pojedynczym obiektem, dopasowana wartość jest zapisywana w zmiennej automatycznej $Matches
.
Na przykład: Get-Process | Where-Object ProcessName -CMatch "Shell"
.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-CNE
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest inna niż określona wartość. Ta operacja uwzględnia wielkość liter.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-CNotContains
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości obiektu nie jest dokładnie zgodna z określoną wartością. Ta operacja uwzględnia wielkość liter.
Na przykład: Get-Process | Where-Object ProcessName -CNotContains "svchost"
.
NotContains i CNotContains odnoszą się do kolekcji wartości i są prawdziwe, gdy kolekcja nie zawiera żadnych elementów, które są dokładnie zgodne z określoną wartością. Jeśli dane wejściowe są pojedynczym obiektem, program PowerShell konwertuje go na kolekcję jednego obiektu.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-CNotIn
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości nie jest dokładnie zgodna z określoną wartością. Ta operacja uwzględnia wielkość liter.
Na przykład: Get-Process | Where-Object -Value "svchost" -CNotIn -Property ProcessName
.
Operatory NotIn i CNotIn przypominają operatory NotContains i CNotContains, z tą różnicą, że pozycje właściwości i wartości są odwrócone. Na przykład następujące instrukcje są prawdziwe.
"abc", "def" -CNotContains "Abc"
"abc" -CNotIn "Abc", "def"
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-CNotLike
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości nie jest zgodna z wartością zawierającą symbole wieloznaczne. Ta operacja uwzględnia wielkość liter.
Na przykład: Get-Process | Where-Object ProcessName -CNotLike "*host"
.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-CNotMatch
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości nie jest zgodna z określonym wyrażeniem regularnym. Ta operacja uwzględnia wielkość liter. Gdy dane wejściowe są pojedynczym obiektem, dopasowana wartość jest zapisywana w zmiennej automatycznej $Matches
.
Na przykład: Get-Process | Where-Object ProcessName -CNotMatch "Shell"
.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Contains
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli jakikolwiek element w wartości właściwości obiektu jest dokładnie zgodny z określoną wartością.
Na przykład: Get-Process | Where-Object ProcessName -Contains "Svchost"
.
Jeśli dane wejściowe są pojedynczym obiektem, program PowerShell konwertuje go na kolekcję jednego obiektu.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Aliasy: | IContains |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-EQ
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest taka sama jak określona wartość.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Aliasy: | IEQ |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-FilterScript
Określa blok skryptu używany do filtrowania obiektów. Otacza blok skryptu w nawiasach klamrowych ({}
).
Nazwa parametru FilterScript jest opcjonalna.
Typ: | ScriptBlock |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-GE
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest większa lub równa określonej wartości.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Aliasy: | IGE |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-GT
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest większa niż określona wartość.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Aliasy: | IGT |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-In
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest zgodna z dowolną z określonych wartości. Na przykład:
Get-Process | Where-Object -Property ProcessName -in -Value "Svchost", "TaskHost", "WsmProvHost"
Jeśli dane wejściowe są pojedynczym obiektem, program PowerShell konwertuje go na kolekcję jednego obiektu.
Jeśli wartość właściwości obiektu jest tablicą, program PowerShell używa równości odwołań w celu określenia dopasowania. Where-Object
Zwraca obiekt tylko wtedy, gdy wartość parametru Property i dowolna wartość Value są tym samym wystąpieniem obiektu.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Aliasy: | IIn |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-InputObject
Określa obiekty do filtrowania. Można również przekazać Where-Object
do obiektu .
W przypadku używania parametru InputObject z parametrem Where-Object
zamiast potokowania wyników polecenia do Where-Object
polecenia polecenie cmdlet traktuje obiekt InputObject jako pojedynczy obiekt. Jest to prawda, nawet jeśli wartość jest kolekcją, która jest wynikiem polecenia, takiego jak -InputObject (Get-Process)
.
Ponieważ obiekt InputObject nie może zwracać pojedynczych właściwości z tablicy lub kolekcji obiektów, zalecamy, aby w przypadku Where-Object
filtrowania kolekcji obiektów dla tych obiektów, które mają określone wartości we zdefiniowanych właściwościach, należy użyć Where-Object
w potoku, jak pokazano w przykładach w tym temacie.
Typ: | PSObject |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Is
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest wystąpieniem określonego typu .NET. Ujmij nazwę typu w nawiasach kwadratowych.
Na przykład Get-Process | Where-Object StartTime -Is [DateTime]
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-IsNot
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości nie jest wystąpieniem określonego typu .NET.
Na przykład Get-Process | where StartTime -IsNot [DateTime]
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-LE
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest mniejsza lub równa określonej wartości.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Aliasy: | ILE |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Like
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości pasuje do wartości zawierającej symbole wieloznaczne (*
).
Na przykład: Get-Process | Where-Object ProcessName -Like "*host"
.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Aliasy: | ILike |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-LT
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest mniejsza niż określona wartość.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Aliasy: | ILT |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Match
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest zgodna z określonym wyrażeniem regularnym. Gdy dane wejściowe są pojedynczym obiektem, dopasowana wartość jest zapisywana w zmiennej automatycznej $Matches
.
Na przykład: Get-Process | Where-Object ProcessName -Match "shell"
.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Aliasy: | IMatch |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-NE
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości jest inna niż określona wartość.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Aliasy: | INE |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Not
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli właściwość nie istnieje lub ma wartość $null
lub $false
.
Na przykład: Get-Service | Where-Object -Not "DependentServices"
.
Ten parametr został wprowadzony w programie Windows PowerShell 6.1.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-NotContains
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli żadna z elementów w wartości właściwości nie jest dokładnie zgodna z określoną wartością.
Na przykład: Get-Process | Where-Object ProcessName -NotContains "Svchost"
.
NotContains odnosi się do kolekcji wartości i ma wartość true, jeśli kolekcja nie zawiera żadnych elementów, które są dokładnie zgodne z określoną wartością. Jeśli dane wejściowe są pojedynczym obiektem, program PowerShell konwertuje go na kolekcję jednego obiektu.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Aliasy: | INotContains |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-NotIn
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości nie jest dokładnie zgodna z żadnym z określonych wartości.
Na przykład: Get-Process | Where-Object -Value "svchost" -NotIn -Property ProcessName
.
Jeśli wartość value jest pojedynczym obiektem, program PowerShell konwertuje go na kolekcję jednego obiektu.
Jeśli wartość właściwości obiektu jest tablicą, program PowerShell używa równości odwołań w celu określenia dopasowania. Where-Object
Zwraca obiekt tylko wtedy, gdy wartość Właściwości i dowolna wartość Value nie są tym samym wystąpieniem obiektu.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Aliasy: | INotIn |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-NotLike
Wskazuje, że to polecenie cmdlet pobiera obiekty, jeśli wartość właściwości nie jest zgodna z wartością zawierającą symbole wieloznaczne (*
).
Na przykład: Get-Process | Where-Object ProcessName -NotLike "*host"
.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Aliasy: | INotLike |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-NotMatch
Wskazuje, że to polecenie cmdlet pobiera obiekty, gdy wartość właściwości nie jest zgodna z określonym wyrażeniem regularnym. Gdy dane wejściowe są pojedynczym obiektem, dopasowana wartość jest zapisywana w zmiennej automatycznej $Matches
.
Na przykład: Get-Process | Where-Object ProcessName -NotMatch "PowerShell"
.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Aliasy: | INotMatch |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Property
Określa nazwę właściwości obiektu wejściowego. Właściwość musi być właściwością wystąpienia, a nie właściwością statyczną. Jest to parametr pozycyjny, więc nazwa, Właściwość, jest opcjonalna.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | String |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Value
Określa wartość właściwości. Nazwa parametru, Wartość, jest opcjonalna. Ten parametr akceptuje symbole wieloznaczne w przypadku użycia z następującymi parametrami porównania:
- CLike
- CNotLike
- Lubić
- NotLike
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | PSObject |
Position: | 1 |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | True |
Dane wejściowe
Do tego polecenia cmdlet można przekazać dowolny obiekt.
Dane wyjściowe
To polecenie cmdlet zwraca wybrane elementy z zestawu obiektów wejściowych.
Uwagi
Program PowerShell zawiera następujące aliasy dla programu Where-Object
:
- Wszystkie platformy:
?
where
Począwszy od programu Windows PowerShell 4.0, Where
a ForEach
metody zostały dodane do użycia z kolekcjami.
Więcej informacji na temat tych metod można znaleźć tutaj about_arrays