Megosztás a következőn keresztül:


Where-Object

Objektumokat jelöl ki egy gyűjteményből a tulajdonságértékük alapján.

Syntax

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

A Where-Object parancsmag kijelöli azokat az objektumokat, amelyek adott tulajdonságértékekkel rendelkeznek a neki átadott objektumok gyűjteményéből. A parancsmaggal például kiválaszthatja azokat a Where-Object fájlokat, amelyeket egy adott dátum után hoztak létre, egy adott azonosítóval rendelkező eseményeket vagy a Windows egy adott verzióját használó számítógépeket.

A Windows PowerShell 3.0-tól kezdve két különböző módon hozhat létre parancsokat Where-Object .

  • Szkriptblokk. Szkriptblokk használatával megadhatja a tulajdonság nevét, egy összehasonlító operátort és egy tulajdonságértéket. Where-Object Visszaadja az összes olyan objektumot, amelynek a szkriptblokk-utasítása igaz.

    A következő parancs például lekéri a Normal prioritási osztályban lévő folyamatokat, vagyis azokat a folyamatokat, amelyeknél a PriorityClass tulajdonság értéke egyenlő Normal.

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

    Minden PowerShell-összehasonlító operátor érvényes a szkriptblokk formátumában. További információ: about_Comparison_Operators.

  • Összehasonlító utasítás. Összehasonlító utasítást is írhat, amely sokkal inkább hasonlít a természetes nyelvhez. Az összehasonlító utasítások a Windows PowerShell 3.0-ban lettek bevezetve.

    Az alábbi parancsok például olyan folyamatokat is lekérnek, amelyek prioritási osztálya a Normalkövetkező. Ezek a parancsok egyenértékűek, és felcserélhetők.

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

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

    A Windows PowerShell 3.0-tól Where-Object kezdve összehasonlító operátorokat ad hozzá paraméterekként egy Where-Object parancsban. Ha nincs megadva, minden operátor érzéketlen a kis- és nagybetűk között. A Windows PowerShell 3.0 előtt a PowerShell nyelv összehasonlító operátorai csak szkriptblokkokban voltak használhatóak.

Ha egyetlen tulajdonságot Where-Objectad meg, a parancsmag logikai kifejezésként kezeli a tulajdonság értékét. Ha a tulajdonság Hossz értéke nem nulla, a kifejezés a következő lesz $true: . Például: ('hi', '', 'there') | Where-Object Length

Az előző példa funkcionálisan egyenértékű a következő értékével:

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

A PowerShell logikai értékek kiértékelésének módjáról további információt a about_Booleans talál.

Példák

1. példa: Leállított szolgáltatások lekérése

Ezek a parancsok lekérik a leállított szolgáltatások listáját. Az $_ automatikus változó a parancsmagnak átadott összes objektumot Where-Object jelöli.

Az első parancs a szkriptblokk formátumát használja, a második parancs pedig az összehasonlító utasítás formátumát. A parancsok ugyanúgy szűrik a szolgáltatásokat, és ugyanazt a kimenetet adják vissza. Csak a szintaxis különbözik.

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

2. példa: Folyamatok lekérése munkakészlet alapján

Ezek a parancsok felsorolják a 250 megabájtnál (MB) nagyobb munkakészlettel rendelkező folyamatokat. A parancsok ugyanúgy szűrik a folyamatokat, és ugyanazt a kimenetet adják vissza. Csak a szintaxis különbözik.

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

3. példa: Folyamatok lekérése folyamatnév alapján

Ezek a parancsok a ProcessName tulajdonságértékkel rendelkező folyamatokat kapják meg, amelyek a betűvel pkezdődnek. Az Egyezés operátor lehetővé teszi a reguláris kifejezésegyezések használatát.

A parancsok ugyanúgy szűrik a folyamatokat, és ugyanazt a kimenetet adják vissza. Csak a szintaxis különbözik.

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

4. példa: Az összehasonlító utasítás formátumának használata

Ez a példa bemutatja, hogyan használható a parancsmag új összehasonlító utasításformátuma Where-Object .

Az első parancs az összehasonlító utasítás formátumát használja. Nem használ aliasokat, és minden paraméter nevét tartalmazza.

A második parancs az összehasonlító parancs formátumának természetesebb használata. A parancs lecseréli az where aliast a Where-Object parancsmag nevére, és kihagyja az összes választható paraméternevet.

A parancsok ugyanúgy szűrik a folyamatokat, és ugyanazt a kimenetet adják vissza. Csak a szintaxis különbözik.

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

5. példa: Parancsok lekérése tulajdonságok alapján

Ez a példa bemutatja, hogyan írhat olyan parancsokat, amelyek igaz vagy hamis elemeket adnak vissza, vagy amelyek egy adott tulajdonsághoz bármilyen értékkel rendelkeznek. Mindegyik példa a parancs szkriptblokk- és összehasonlító utasításformátumát mutatja be.

A parancsok ugyanúgy szűrik a bemenetüket, és ugyanazt a kimenetet adják vissza. Csak a szintaxis különbözik.

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

6. példa: Több feltétel használata

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

Ez a példa bemutatja, hogyan hozhat létre Where-Object több feltételt tartalmazó parancsot.

Ez a parancs nem magos modulokat kap, amelyek támogatják az Frissíthető súgó funkciót. A parancs a parancsmag ListAvailable paraméterét használja a Get-Module számítógép összes moduljának lekéréséhez. A folyamatüzemeltető (|) elküldi a modulokat a Where-Object parancsmagnak, amely lekéri azokat a modulokat, amelyeknek a neve nem kezdődik, Microsoft vagy PSa HelpInfoURI tulajdonság értéke jelzi a PowerShellnek, hogy hol találhatók a modul frissített súgófájljai. A -and logikai operátor összekapcsolja az összehasonlító utasításokat.

A példa a szkriptblokk parancsformátumát használja. A logikai operátorok, például -anda ,-or, -not csak szkriptblokkokban érvényesek. A parancsok összehasonlító utasításformátumában Where-Object nem használhatja őket.

Paraméterek

-CContains

Azt jelzi, hogy ez a parancsmag objektumokat kér le egy gyűjteményből, ha az objektum tulajdonságértéke pontosan megegyezik a megadott értékkel. Ez a művelet megkülönbözteti a kis- és nagybetűk megkülönböztetettségét.

Például: Get-Process | Where-Object ProcessName -CContains "svchost"

A CContains értékgyűjteményre hivatkozik , és igaz, ha a gyűjtemény olyan elemet tartalmaz, amely pontosan egyezik a megadott értékkel. Ha a bemenet egyetlen objektum, a PowerShell egy objektum gyűjteményét alakítja át.

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-CEQ

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke megegyezik a megadott értékkel. Ez a művelet megkülönbözteti a kis- és nagybetűk megkülönböztetettségét.

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-CGE

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke nagyobb vagy egyenlő a megadott értékkel. Ez a művelet megkülönbözteti a kis- és nagybetűk megkülönböztetettségét.

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-CGT

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke nagyobb a megadott értéknél. Ez a művelet megkülönbözteti a kis- és nagybetűk megkülönböztetettségét.

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-CIn

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke tartalmazza a megadott értéket. Ez a művelet megkülönbözteti a kis- és nagybetűk megkülönböztetettségét.

Például: Get-Process | Where-Object -Value "svchost" -CIn ProcessName

A CIn a CContainshoz hasonlít, azzal a kivételsel, hogy a tulajdonság- és értékpozíciók fordítottak. Az alábbi állítások például mind igazak.

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

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

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-CLE

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke kisebb vagy egyenlő a megadott értéknél. Ez a művelet megkülönbözteti a kis- és nagybetűk megkülönböztetettségét.

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-CLike

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke megegyezik egy helyettesítő karaktereket (*) tartalmazó értékkel. Ez a művelet megkülönbözteti a kis- és nagybetűk megkülönböztetettségét.

Például: Get-Process | Where-Object ProcessName -CLike "*host"

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-CLT

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke kisebb a megadott értéknél. Ez a művelet megkülönbözteti a kis- és nagybetűk megkülönböztetettségét.

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-CMatch

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke megegyezik a megadott reguláris kifejezéssel. Ez a művelet megkülönbözteti a kis- és nagybetűk megkülönböztetettségét. Ha a bemenet egyetlen objektum, a rendszer menti a megfeleltetett értéket az $Matches automatikus változóba.

Például: Get-Process | Where-Object ProcessName -CMatch "Shell"

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-CNE

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke eltér a megadott értékétől. Ez a művelet megkülönbözteti a kis- és nagybetűk megkülönböztetettségét.

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-CNotContains

Azt jelzi, hogy ez a parancsmag akkor kap objektumokat, ha az objektum tulajdonságértéke nem egyezik meg pontosan a megadott értékkel. Ez a művelet megkülönbözteti a kis- és nagybetűk megkülönböztetettségét.

Például: Get-Process | Where-Object ProcessName -CNotContains "svchost"

A NotContains és a CNotContains értékgyűjteményre hivatkozik , és igaz, ha a gyűjtemény nem tartalmaz olyan elemeket, amelyek pontosan egyeznek a megadott értékkel. Ha a bemenet egyetlen objektum, a PowerShell egy objektum gyűjteményét alakítja át.

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-CNotIn

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke nem egyezik meg pontosan a megadott értékkel. Ez a művelet megkülönbözteti a kis- és nagybetűk megkülönböztetettségét.

Például: Get-Process | Where-Object -Value "svchost" -CNotIn -Property ProcessName

A NotIn és a CNotIn operátorok a NotContainsra és a CNotContainsra hasonlítanak, azzal a kivételsel, hogy a tulajdonság- és értékpozíciók fordítottak. Például az alábbi állítások igazak.

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

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

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-CNotLike

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke nem egyezik meg a helyettesítő karaktereket tartalmazó értékkel. Ez a művelet megkülönbözteti a kis- és nagybetűk megkülönböztetettségét.

Például: Get-Process | Where-Object ProcessName -CNotLike "*host"

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-CNotMatch

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke nem egyezik a megadott reguláris kifejezéssel. Ez a művelet megkülönbözteti a kis- és nagybetűk megkülönböztetettségét. Ha a bemenet egyetlen objektum, a rendszer menti a megfeleltetett értéket az $Matches automatikus változóba.

Például: Get-Process | Where-Object ProcessName -CNotMatch "Shell"

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-Contains

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha az objektum tulajdonságértékének bármely eleme pontosan egyezik a megadott értékkel.

Például: Get-Process | Where-Object ProcessName -Contains "Svchost"

Ha a bemenet egyetlen objektum, a PowerShell egy objektum gyűjteményét alakítja át.

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Aliasok:IContains
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-EQ

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke megegyezik a megadott értékkel.

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Aliasok:IEQ
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-FilterScript

Megadja az objektumok szűréséhez használt szkriptblokkot. Csatolja a szkriptblokkot kapcsos zárójelekbe ({}).

A FilterScript paraméternév megadása nem kötelező.

Típus:ScriptBlock
Position:0
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-GE

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke nagyobb vagy egyenlő a megadott értékkel.

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Aliasok:IGE
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-GT

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke nagyobb a megadott értéknél.

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Aliasok:IGT
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-In

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke megfelel valamelyik megadott értéknek. Példa:

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

Ha a bemenet egyetlen objektum, a PowerShell egy objektum gyűjteményét alakítja át.

Ha egy objektum tulajdonságértéke tömb, a PowerShell hivatkozási egyenlőséget használ egyezés meghatározásához. Where-ObjectAz objektumot csak akkor adja vissza, ha a Tulajdonság paraméter értéke és az Érték bármely értéke megegyezik egy objektum példányával.

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Aliasok:IIn
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-InputObject

Megadja a szűrni kívánt objektumokat. Az objektumokat be is csövezheti a következőre Where-Object: .

Amikor az InputObject paramétert Where-Objecthasználja a parancsok eredményeinek Where-Objectpipálása helyett, a parancsmag egyetlen objektumként kezeli az InputObjectet . Ez akkor is igaz, ha az érték egy parancs eredménye, például -InputObject (Get-Process).

Mivel az InputObject nem tud egyedi tulajdonságokat visszaadni egy tömbből vagy objektumgyűjteményből, javasoljuk, hogy ha olyan objektumok gyűjteményét szeretné Where-Object szűrni, amelyek meghatározott tulajdonságokban meghatározott értékekkel rendelkeznek, használja Where-Object a folyamatot a jelen témakör példáiban látható módon.

Típus:PSObject
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:True
Helyettesítő karakterek elfogadása:False

-Is

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke a megadott .NET-típus egy példánya. A típusnevet szögletes zárójelek közé kell foglalni.

Például: Get-Process | Where-Object StartTime -Is [DateTime]

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-IsNot

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke nem a megadott .NET-típus példánya.

Például: Get-Process | where StartTime -IsNot [DateTime]

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-LE

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke kisebb vagy egyenlő a megadott értéknél.

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Aliasok:ILE
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-Like

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke megegyezik egy helyettesítő karaktereket (*) tartalmazó értékkel.

Például: Get-Process | Where-Object ProcessName -Like "*host"

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Aliasok:ILike
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-LT

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke kisebb a megadott értéknél.

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Aliasok:ILT
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-Match

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke megegyezik a megadott reguláris kifejezéssel. Ha a bemenet egyetlen objektum, a rendszer menti a megfeleltetett értéket az $Matches automatikus változóba.

Például: Get-Process | Where-Object ProcessName -Match "shell"

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Aliasok:IMatch
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-NE

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke eltér a megadott értékétől.

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Aliasok:INE
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-Not

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság nem létezik, vagy értéke vagy $falseértéke $null van.

Például: Get-Service | Where-Object -Not "DependentServices"

Ez a paraméter a Windows PowerShell 6.1-ben lett bevezetve.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-NotContains

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonságérték egyik eleme sem felel meg pontosan a megadott értéknek.

Például: Get-Process | Where-Object ProcessName -NotContains "Svchost"

A NotContains értékgyűjteményre hivatkozik , és igaz, ha a gyűjtemény nem tartalmaz olyan elemeket, amelyek pontosan egyeznek a megadott értékkel. Ha a bemenet egyetlen objektum, a PowerShell egy objektum gyűjteményét alakítja át.

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Aliasok:INotContains
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-NotIn

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke nem egyezik meg a megadott értékek egyikével sem.

Például: Get-Process | Where-Object -Value "svchost" -NotIn -Property ProcessName

Ha az Érték érték egyetlen objektum, a PowerShell egy objektum gyűjteményét alakítja át.

Ha egy objektum tulajdonságértéke tömb, a PowerShell hivatkozási egyenlőséget használ egyezés meghatározásához. Where-ObjectAz objektumot csak akkor adja vissza, ha a Tulajdonság és az Érték érték nem azonos az objektum példányával.

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Aliasok:INotIn
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-NotLike

Azt jelzi, hogy ez a parancsmag objektumokat kap, ha a tulajdonság értéke nem egyezik meg a helyettesítő karaktereket (*) tartalmazó értékkel.

Például: Get-Process | Where-Object ProcessName -NotLike "*host"

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Aliasok:INotLike
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-NotMatch

Azt jelzi, hogy ez a parancsmag akkor kap objektumokat, ha a tulajdonság értéke nem egyezik meg a megadott reguláris kifejezéssel. Ha a bemenet egyetlen objektum, a rendszer menti a megfeleltetett értéket az $Matches automatikus változóba.

Például: Get-Process | Where-Object ProcessName -NotMatch "PowerShell"

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:SwitchParameter
Aliasok:INotMatch
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-Property

Megadja a bemeneti objektum egyik tulajdonságának nevét. A tulajdonságnak példánytulajdonságnak kell lennie, nem statikus tulajdonságnak. Ez egy pozícióparaméter, ezért a tulajdonság neve nem kötelező.

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:String
Position:0
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-Value

Tulajdonságértéket ad meg. Az Érték paraméternév megadása nem kötelező. Ez a paraméter helyettesítő karaktereket fogad el, ha az alábbi összehasonlító paraméterekkel használja:

  • CLike
  • CNotLike
  • Szeret
  • Nem tetszik

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Típus:PSObject
Position:1
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:True

Bevitelek

PSObject

A parancsmaghoz bármilyen objektumot csövezhet.

Kimenetek

Object

Ez a parancsmag a bemeneti objektumkészlet kijelölt elemeit adja vissza.

Jegyzetek

A PowerShell a következő aliasokat Where-Objecttartalmazza:

  • Minden platform:
    • ?
    • where

A Windows PowerShell 4.0-tól Where ForEach kezdve a gyűjteményekhez használt metódusok lettek hozzáadva.

Ezekről a módszerekről itt olvashat bővebben about_arrays