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>]
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
Normal
kö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 egyWhere-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-Object
ad 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 p
kezdő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 { !$_.PSIsContainer }
# You cannot use the -not operator (!) in the comparison statement format
# of the command.
Get-ChildItem | Where-Object PSIsContainer -eq $False
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 PS
a 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 -and
a ,-or
, -not
csak szkriptblokkokban érvényesek. A parancsok összehasonlító utasításformátumában Where-Object
nem használhatja őket.
- További információ a PowerShell logikai operátorairól: about_Logical_Operators.
- Az Frissíthető súgó funkcióval kapcsolatos további információkért lásd: about_Updatable_Help.
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-Object
Az 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-Object
használja a parancsok eredményeinek Where-Object
pipá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 |
-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-Object
Az 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
A parancsmaghoz bármilyen objektumot csövezhet.
Kimenetek
Ez a parancsmag a bemeneti objektumkészlet kijelölt elemeit adja vissza.
Jegyzetek
A Windows PowerShell a következő aliasokat Where-Object
tartalmazza:
?
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