Sdílet prostřednictvím


Where-Object

Vybere objekty z kolekce na základě hodnot jejich vlastností.

Syntaxe

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>]

Description

Rutina Where-Object vybere objekty, které mají konkrétní hodnoty vlastností z kolekce objektů, které jsou do ní předány. Pomocí této rutiny Where-Object můžete například vybrat soubory vytvořené po určitém datu, události s určitým ID nebo počítači, které používají konkrétní verzi Windows.

Počínaje windows PowerShellem 3.0 existují dva různé způsoby vytvoření Where-Object příkazu.

  • Blok skriptu. Blok skriptu můžete použít k určení názvu vlastnosti, relačního operátoru a hodnoty vlastnosti. Where-Object vrátí všechny objekty, pro které je příkaz bloku skriptu pravdivý.

    Například následující příkaz získá procesy ve Normal třídě priority, to znamená procesy, kde hodnota PriorityClass vlastnost se rovná Normal.

    Get-Process | Where-Object {$_.PriorityClass -eq "Normal"}

    Všechny relační operátory PowerShellu jsou platné ve formátu bloku skriptu. Další informace najdete v tématu about_Comparison_Operators.

  • Příkaz porovnání. Můžete také napsat porovnávací příkaz, který je mnohem více podobný přirozenému jazyku. Příkazy porovnání byly zavedeny ve Windows PowerShellu 3.0.

    Například následující příkazy také získávají procesy, které mají prioritu třídy Normal. Tyto příkazy jsou ekvivalentní a můžete je zaměnitelně.

    Get-Process | Where-Object -Property PriorityClass -EQ -Value "Normal"

    Get-Process | Where-Object PriorityClass -EQ "Normal"

    Počínaje windows PowerShellem 3.0 Where-Object přidá operátory porovnání jako parametry v Where-Object příkazu. Pokud není zadáno, nerozlišují se všechny operátory malá a velká písmena. Před Windows PowerShellem 3.0 byly relační operátory v jazyce PowerShell použitelné pouze v blocích skriptu.

Když zadáte jedinou vlastnost Where-Object, rutina zachází s hodnotou vlastnosti jako s logickým výrazem. Pokud hodnota length vlastnosti není nula, výraz se vyhodnotí jako $true. Příklad: ('hi', '', 'there') | Where-Object Length

Předchozí příklad je funkčně ekvivalentní:

  • ('hi', '', 'there') | Where-Object Length -GT 0
  • ('hi', '', 'there') | Where-Object { $_.Length -gt 0 }

Další informace o tom, jak PowerShell vyhodnocuje logické hodnoty, najdete v tématu about_Booleans.

Příklady

Příklad 1: Získání zastavených služeb

Tyto příkazy získají seznam všech zastavených služeb. Automatická $_ proměnná představuje každý objekt předaný rutině Where-Object .

První příkaz používá formát bloku skriptu, druhý příkaz používá formát příkazu porovnání. Příkazy filtruje služby stejným způsobem a vrací stejný výstup. Pouze syntaxe se liší.

Get-Service | Where-Object { $_.Status -eq "Stopped" }
Get-Service | Where-Object Status -EQ "Stopped"

Příklad 2: Získání procesů na základě pracovní sady

Tyto příkazy uvádějí procesy, které mají pracovní sadu větší než 250 megabajtů (MB). Příkazy filtruje procesy stejným způsobem a vrací stejný výstup. Pouze syntaxe se liší.

Get-Process | Where-Object { $_.WorkingSet -GT 250MB }
Get-Process | Where-Object WorkingSet -GT 250MB

Příklad 3: Získání procesů na základě názvu procesu

Tyto příkazy získají procesy, které mají hodnotu vlastnosti ProcessName , která začíná písmenem p. Operátor Shoda umožňuje používat shody regulárních výrazů.

Příkazy filtruje procesy stejným způsobem a vrací stejný výstup. Pouze syntaxe se liší.

Get-Process | Where-Object { $_.ProcessName -Match "^p.*" }
Get-Process | Where-Object ProcessName -Match "^p.*"

Příklad 4: Použití formátu příkazu porovnání

Tento příklad ukazuje, jak použít nový formát příkazu porovnání rutiny Where-Object .

První příkaz používá formát příkazu porovnání. Nepoužívá žádné aliasy a obsahuje název každého parametru.

Druhým příkazem je přirozenější použití formátu příkazu porovnání. Příkaz nahradí where alias názvu Where-Object rutiny a vynechá všechny volitelné názvy parametrů.

Příkazy filtruje procesy stejným způsobem a vrací stejný výstup. Pouze syntaxe se liší.

Get-Process | Where-Object -Property Handles -GE -Value 1000
Get-Process | where Handles -GE 1000

Příklad 5: Získání příkazů na základě vlastností

Tento příklad ukazuje, jak psát příkazy, které vracejí položky, které mají hodnotu true nebo false nebo mají libovolnou hodnotu pro zadanou vlastnost. Každý příklad ukazuje formáty bloku skriptu i příkazu porovnání.

Příkazy filtrují vstup stejným způsobem a vrací stejný výstup. Pouze syntaxe se liší.

# 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 }

Příklad 6: Použití více podmínek

Get-Module -ListAvailable | Where-Object {
    ($_.Name -notlike "Microsoft*" -and $_.Name -notlike "PS*") -and $_.HelpInfoUri
}

Tento příklad ukazuje, jak vytvořit Where-Object příkaz s více podmínkami.

Tento příkaz získá nejádrový modul, který podporuje funkci Aktualizovatelná nápověda. Příkaz pomocí parametru Get-Module ListAvailable rutiny získá všechny moduly v počítači. Operátor kanálu (|) odešle moduly do Where-Object rutiny, která získá moduly, jejichž názvy nezačínají Microsoft nebo PS, a mají hodnotu pro vlastnost HelpInfoURI , která říká PowerShellu, kde najít aktualizované soubory nápovědy pro modul. Logický -and operátor spojuje příkazy porovnání.

Příklad používá formát příkazu bloku skriptu. Logické operátory, například -and,-or, a -not jsou platné pouze v blocích skriptu. Nemůžete je použít ve formátu Where-Object příkazu porovnání.

Parametry

-CContains

Označuje, že tato rutina získá objekty z kolekce, pokud hodnota vlastnosti objektu je přesná shoda pro zadanou hodnotu. Tato operace rozlišují malá a velká písmena.

Příklad: Get-Process | Where-Object ProcessName -CContains "svchost"

CContains odkazuje na kolekci hodnot a je true, pokud kolekce obsahuje položku, která je přesná shoda pro zadanou hodnotu. Pokud je vstup jedním objektem, PowerShell ho převede na kolekci jednoho objektu.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-CEQ

Označuje, že tato rutina získá objekty, pokud je hodnota vlastnosti stejná jako zadaná hodnota. Tato operace rozlišují malá a velká písmena.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-CGE

Označuje, že tato rutina získá objekty, pokud je hodnota vlastnosti větší nebo rovna zadané hodnotě. Tato operace rozlišují malá a velká písmena.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-CGT

Označuje, že tato rutina získá objekty, pokud je hodnota vlastnosti větší než zadaná hodnota. Tato operace rozlišují malá a velká písmena.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-CIn

Označuje, že tato rutina získá objekty, pokud hodnota vlastnosti obsahuje zadanou hodnotu. Tato operace rozlišují malá a velká písmena.

Příklad: Get-Process | Where-Object -Value "svchost" -CIn ProcessName

Funkce CIn se podobá CContains s tím rozdílem, že pozice vlastností a hodnot jsou obrácené. Například následující příkazy jsou pravdivé.

"abc", "def" -CContains "abc"

"abc" -CIn "abc", "def"

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-CLE

Označuje, že tato rutina získá objekty, pokud je hodnota vlastnosti menší nebo rovna zadané hodnotě. Tato operace rozlišují malá a velká písmena.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-CLike

Označuje, že tato rutina získá objekty, pokud hodnota vlastnosti odpovídá hodnotě, která obsahuje zástupné znaky (*). Tato operace rozlišují malá a velká písmena.

Příklad: Get-Process | Where-Object ProcessName -CLike "*host"

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-CLT

Označuje, že tato rutina získá objekty, pokud je hodnota vlastnosti menší než zadaná hodnota. Tato operace rozlišují malá a velká písmena.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-CMatch

Označuje, že tato rutina získá objekty, pokud hodnota vlastnosti odpovídá zadanému regulárnímu výrazu. Tato operace rozlišují malá a velká písmena. Pokud je vstup jedním objektem, odpovídající hodnota se uloží do $Matches automatické proměnné.

Příklad: Get-Process | Where-Object ProcessName -CMatch "Shell"

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-CNE

Označuje, že tato rutina získá objekty, pokud se hodnota vlastnosti liší od zadané hodnoty. Tato operace rozlišují malá a velká písmena.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-CNotContains

Označuje, že tato rutina získá objekty, pokud hodnota vlastnosti objektu není přesná shoda pro zadanou hodnotu. Tato operace rozlišují malá a velká písmena.

Příklad: Get-Process | Where-Object ProcessName -CNotContains "svchost"

NotContains a CNotContains odkazují na kolekci hodnot a jsou pravdivé, pokud kolekce neobsahuje žádné položky, které jsou přesné shody pro zadanou hodnotu. Pokud je vstup jedním objektem, PowerShell ho převede na kolekci jednoho objektu.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-CNotIn

Označuje, že tato rutina získá objekty, pokud hodnota vlastnosti není přesná shoda pro zadanou hodnotu. Tato operace rozlišují malá a velká písmena.

Příklad: Get-Process | Where-Object -Value "svchost" -CNotIn -Property ProcessName

Operátory NotIn a CNotIn se podobají notContains a CNotContains, s tím rozdílem, že pozice vlastností a hodnot jsou obrácené. Například následující příkazy jsou pravdivé.

"abc", "def" -CNotContains "Abc"

"abc" -CNotIn "Abc", "def"

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-CNotLike

Označuje, že tato rutina získá objekty, pokud hodnota vlastnosti neodpovídá hodnotě, která obsahuje zástupné znaky. Tato operace rozlišují malá a velká písmena.

Příklad: Get-Process | Where-Object ProcessName -CNotLike "*host"

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-CNotMatch

Označuje, že tato rutina získá objekty, pokud hodnota vlastnosti neodpovídá zadanému regulárnímu výrazu. Tato operace rozlišují malá a velká písmena. Pokud je vstup jedním objektem, odpovídající hodnota se uloží do $Matches automatické proměnné.

Příklad: Get-Process | Where-Object ProcessName -CNotMatch "Shell"

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Contains

Označuje, že tato rutina získá objekty, pokud jakákoli položka v hodnotě vlastnosti objektu je přesná shoda pro zadanou hodnotu.

Příklad: Get-Process | Where-Object ProcessName -Contains "Svchost"

Pokud je vstup jedním objektem, PowerShell ho převede na kolekci jednoho objektu.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Aliasy:IContains
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-EQ

Označuje, že tato rutina získá objekty, pokud je hodnota vlastnosti stejná jako zadaná hodnota.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Aliasy:IEQ
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-FilterScript

Určuje blok skriptu, který se používá k filtrování objektů. Uzavřete blok skriptu do složených závorek ({}).

Název parametru FilterScript je volitelný.

Typ:ScriptBlock
Position:0
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-GE

Označuje, že tato rutina získá objekty, pokud je hodnota vlastnosti větší nebo rovna zadané hodnotě.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Aliasy:IGE
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-GT

Označuje, že tato rutina získá objekty, pokud je hodnota vlastnosti větší než zadaná hodnota.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Aliasy:IGT
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-In

Označuje, že tato rutina získá objekty, pokud hodnota vlastnosti odpovídá některé ze zadaných hodnot. Příklad:

Get-Process | Where-Object -Property ProcessName -in -Value "Svchost", "TaskHost", "WsmProvHost"

Pokud je vstup jedním objektem, PowerShell ho převede na kolekci jednoho objektu.

Pokud je hodnota vlastnosti objektu pole, PowerShell použije k určení shody rovnost odkazů. Where-Object vrátí objekt pouze v případě, že hodnota parametru Property a jakákoli hodnota Value je stejná instance objektu.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Aliasy:IIn
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-InputObject

Určuje objekty, které se mají filtrovat. Objekty můžete také převést na Where-Object.

Když použijete inputObject parametr s , místo Where-Objectpiping command výsledky do Where-Object, rutina zachází InputObject jako s jedním objektem. To platí i v případě, že hodnota je kolekce, která je výsledkem příkazu, například -InputObject (Get-Process).

Protože InputObject nemůže vracet jednotlivé vlastnosti z pole nebo kolekce objektů, doporučujeme, abyste vyfiltrovali Where-Object kolekci objektů pro tyto objekty, které mají určité hodnoty v definovaných vlastnostech, použijete Where-Object v kanálu, jak je znázorněno v příkladech v tomto tématu.

Typ:PSObject
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Is

Označuje, že tato rutina získá objekty, pokud je hodnota vlastnosti instance zadaného typu .NET. Uzavřete název typu do hranatých závorek.

Například Get-Process | Where-Object StartTime -Is [DateTime]

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-IsNot

Označuje, že tato rutina získá objekty, pokud hodnota vlastnosti není instancí zadaného typu .NET.

Například Get-Process | where StartTime -IsNot [DateTime]

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-LE

Označuje, že tato rutina získá objekty, pokud je hodnota vlastnosti menší nebo rovna zadané hodnotě.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Aliasy:ILE
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Like

Označuje, že tato rutina získá objekty, pokud hodnota vlastnosti odpovídá hodnotě, která obsahuje zástupné znaky (*).

Příklad: Get-Process | Where-Object ProcessName -Like "*host"

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Aliasy:ILike
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-LT

Označuje, že tato rutina získá objekty, pokud je hodnota vlastnosti menší než zadaná hodnota.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Aliasy:ILT
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Match

Označuje, že tato rutina získá objekty, pokud hodnota vlastnosti odpovídá zadanému regulárnímu výrazu. Pokud je vstup jedním objektem, odpovídající hodnota se uloží do $Matches automatické proměnné.

Příklad: Get-Process | Where-Object ProcessName -Match "shell"

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Aliasy:IMatch
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-NE

Označuje, že tato rutina získá objekty, pokud se hodnota vlastnosti liší od zadané hodnoty.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Aliasy:INE
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Not

Označuje, že tato rutina získá objekty, pokud vlastnost neexistuje nebo má hodnotu $null nebo $false.

Příklad: Get-Service | Where-Object -Not "DependentServices"

Tento parametr byl představen ve Windows PowerShellu 6.1.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-NotContains

Označuje, že tato rutina získá objekty, pokud žádná z položek v hodnotě vlastnosti není přesná shoda pro zadanou hodnotu.

Příklad: Get-Process | Where-Object ProcessName -NotContains "Svchost"

NotContains odkazuje na kolekci hodnot a je true, pokud kolekce neobsahuje žádné položky, které jsou přesnou shodou pro zadanou hodnotu. Pokud je vstup jedním objektem, PowerShell ho převede na kolekci jednoho objektu.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Aliasy:INotContains
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-NotIn

Označuje, že tato rutina získá objekty, pokud hodnota vlastnosti není přesná shoda pro žádnou ze zadaných hodnot.

Příklad: Get-Process | Where-Object -Value "svchost" -NotIn -Property ProcessName

Pokud je hodnota Value jedním objektem, PowerShell ji převede na kolekci jednoho objektu.

Pokud je hodnota vlastnosti objektu pole, PowerShell použije k určení shody rovnost odkazů. Where-Object vrátí objekt pouze v případě, že hodnota Vlastnosti a jakákoli hodnota Value nejsou stejnou instancí objektu.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Aliasy:INotIn
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-NotLike

Označuje, že tato rutina získá objekty, pokud hodnota vlastnosti neodpovídá hodnotě, která obsahuje zástupné znaky (*).

Příklad: Get-Process | Where-Object ProcessName -NotLike "*host"

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Aliasy:INotLike
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-NotMatch

Označuje, že tato rutina získá objekty, když hodnota vlastnosti neodpovídá zadanému regulárnímu výrazu. Pokud je vstup jedním objektem, odpovídající hodnota se uloží do $Matches automatické proměnné.

Příklad: Get-Process | Where-Object ProcessName -NotMatch "PowerShell"

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:SwitchParameter
Aliasy:INotMatch
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Property

Určuje název vlastnosti vstupního objektu. Vlastnost musí být vlastnost instance, nikoli statická vlastnost. Jedná se o poziční parametr, takže název , Vlastnost, je nepovinný.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:String
Position:0
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Value

Určuje hodnotu vlastnosti. Název parametru Value je volitelný. Tento parametr přijímá zástupné znaky při použití s následujícími parametry porovnání:

  • CLike
  • CNotLike
  • Jako
  • NotLike

Tento parametr byl představen ve Windows PowerShellu 3.0.

Typ:PSObject
Position:1
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:True

Vstupy

PSObject

Do této rutiny můžete převést libovolný objekt.

Výstupy

Object

Tato rutina vrátí vybrané položky ze vstupní sady objektů.

Poznámky

PowerShell obsahuje následující aliasy pro Where-Object:

  • Všechny platformy:
    • ?
    • where

Počínaje windows PowerShellem 4.0 Where a ForEach metody byly přidány pro použití s kolekcemi.

Další informace o těchto metodách najdete about_arrays