Where-Object
根據對象的屬性值,從集合中選取物件。
語法
EqualSet (預設值)
Where-Object
[-Property] <String>
[[-Value] <Object>]
[-InputObject <PSObject>]
[-EQ]
[<CommonParameters>]
ScriptBlockSet
Where-Object
[-FilterScript] <ScriptBlock>
[-InputObject <PSObject>]
[<CommonParameters>]
MatchSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-Match
[-InputObject <PSObject>]
[<CommonParameters>]
CaseSensitiveEqualSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-CEQ
[-InputObject <PSObject>]
[<CommonParameters>]
NotEqualSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-NE
[-InputObject <PSObject>]
[<CommonParameters>]
CaseSensitiveNotEqualSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-CNE
[-InputObject <PSObject>]
[<CommonParameters>]
GreaterThanSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-GT
[-InputObject <PSObject>]
[<CommonParameters>]
CaseSensitiveGreaterThanSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-CGT
[-InputObject <PSObject>]
[<CommonParameters>]
LessThanSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-LT
[-InputObject <PSObject>]
[<CommonParameters>]
CaseSensitiveLessThanSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-CLT
[-InputObject <PSObject>]
[<CommonParameters>]
GreaterOrEqualSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-GE
[-InputObject <PSObject>]
[<CommonParameters>]
CaseSensitiveGreaterOrEqualSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-CGE
[-InputObject <PSObject>]
[<CommonParameters>]
LessOrEqualSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-LE
[-InputObject <PSObject>]
[<CommonParameters>]
CaseSensitiveLessOrEqualSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-CLE
[-InputObject <PSObject>]
[<CommonParameters>]
LikeSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-Like
[-InputObject <PSObject>]
[<CommonParameters>]
CaseSensitiveLikeSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-CLike
[-InputObject <PSObject>]
[<CommonParameters>]
NotLikeSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-NotLike
[-InputObject <PSObject>]
[<CommonParameters>]
CaseSensitiveNotLikeSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-CNotLike
[-InputObject <PSObject>]
[<CommonParameters>]
CaseSensitiveMatchSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-CMatch
[-InputObject <PSObject>]
[<CommonParameters>]
NotMatchSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-NotMatch
[-InputObject <PSObject>]
[<CommonParameters>]
CaseSensitiveNotMatchSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-CNotMatch
[-InputObject <PSObject>]
[<CommonParameters>]
ContainsSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-Contains
[-InputObject <PSObject>]
[<CommonParameters>]
CaseSensitiveContainsSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-CContains
[-InputObject <PSObject>]
[<CommonParameters>]
NotContainsSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-NotContains
[-InputObject <PSObject>]
[<CommonParameters>]
CaseSensitiveNotContainsSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-CNotContains
[-InputObject <PSObject>]
[<CommonParameters>]
InSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-In
[-InputObject <PSObject>]
[<CommonParameters>]
CaseSensitiveInSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-CIn
[-InputObject <PSObject>]
[<CommonParameters>]
NotInSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-NotIn
[-InputObject <PSObject>]
[<CommonParameters>]
CaseSensitiveNotInSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-CNotIn
[-InputObject <PSObject>]
[<CommonParameters>]
IsSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-Is
[-InputObject <PSObject>]
[<CommonParameters>]
IsNotSet
Where-Object
[-Property] <String>
[[-Value] <Object>]
-IsNot
[-InputObject <PSObject>]
[<CommonParameters>]
Description
Where-Object Cmdlet 會從傳遞給它的 物件集合中選取具有特定屬性值的物件。 例如,您可以使用 Where-Object Cmdlet 來選取在特定日期之後建立的檔案、具有特定標識碼的事件,或是使用特定 Windows 版本的電腦。
從 Windows PowerShell 3.0 開始,有兩種不同的方法來建構 Where-Object 命令。
腳本區塊語法。 您可以使用文稿區塊來指定屬性名稱、比較運算子和屬性值。
Where-Object會傳回腳本區塊語句為 true 的所有物件。例如,下列命令會取得 PriorityClass 屬性值等於
Normal的進程。Get-Process | Where-Object {$_.PriorityClass -eq "Normal"}所有 PowerShell 比較運算子都以腳本區塊格式有效。 如需詳細資訊,請參閱 about_Comparison_Operators。
簡化的語法。 若要啟用擷取的語法,
Where-Object請包含31個代表比較運算符的參數。 簡化的語法比腳本區塊語法更容易讀取和寫入。 您可以將其中一個 switch 參數與 Property 和 Value 參數結合,以建立命令,根據對象的屬性值來篩選物件。例如,下列命令也會取得優先順序類別為
Normal的進程。 這些命令是相等的,而且您可以交替使用。Get-Process | Where-Object -Property PriorityClass -Value Normal -EQGet-Process | Where-Object PriorityClass -EQ Normal如範例所示, 參數名稱 Property 和 Value 是選擇性的。 Property 參數是對應至位置 的位置
0參數。 Value 參數是對應至位置 的位置1參數。 用來指定比較的 switch 參數可用於任何位置。簡化的語法是在 Windows PowerShell 3.0 中引進的。 如需詳細資訊,請參閱 about_Simplified_Syntax。
當您將單一 PropertyWhere-Object提供給 時,Cmdlet 會將 屬性的值視為布爾表達式。 當屬性值的 Length 不是零時,表示式會評估為 $true。 例如:('hi', '', 'there') | Where-Object Length
上一個範例的功能相當於:
('hi', '', 'there') | Where-Object Length -GT 0('hi', '', 'there') | Where-Object { $_.Length -gt 0 }
如需 PowerShell 如何評估布爾值的詳細資訊,請參閱 about_Booleans。
範例
範例 1:取得已停止的服務
這些命令會取得已停止的所有服務清單。
$_ 自動變數代表傳遞至 Where-Object Cmdlet 的每個物件。
第一個命令使用文本區塊格式,第二個命令會使用比較語句格式。 命令會以相同的方式篩選服務,並傳回相同的輸出。 只有語法不同。
Get-Service | Where-Object { $_.Status -eq "Stopped" }
Get-Service | Where-Object Status -EQ "Stopped"
範例 2:根據工作集取得進程
這些命令會列出工作集大於 250 MB (MB) 的進程。 命令會以相同方式篩選進程,並傳回相同的輸出。 只有語法不同。
Get-Process | Where-Object { $_.WorkingSet -gt 250MB }
Get-Process | Where-Object WorkingSet -GT 250MB
範例 3:根據進程名稱取得進程
這些命令會取得具有以字母 開頭之 p 屬性值的進程。
-match運算子和 Match 參數可讓您使用正規表示式比對。
命令會以相同方式篩選進程,並傳回相同的輸出。 只有語法不同。
Get-Process | Where-Object { $_.ProcessName -match "^p.*" }
Get-Process | Where-Object ProcessName -Match "^p.*"
範例 4:使用比較語句格式
此範例示範如何使用 Where-Object Cmdlet 的新比較語句格式。
第一個命令會使用比較語句格式。 它不會使用任何別名,並包含每個參數的名稱。
第二個命令是比較命令格式更自然的用法。 命令會將 where 別名取代為 Where-Object Cmdlet 名稱,並省略所有選擇性參數名稱。
命令會以相同方式篩選進程,並傳回相同的輸出。 只有語法不同。
Get-Process | Where-Object -Property Handles -GE -Value 1000
Get-Process | where Handles -GE 1000
範例 5:根據屬性取得命令
這個範例示範如何撰寫命令,以傳回 true 或 false 或具有指定屬性的任何值的專案。 每個範例都會顯示命令的腳本區塊和比較語句格式。
命令會以相同的方式篩選其輸入,並傳回相同的輸出。 只有語法不同。
# 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:使用多個條件
Get-Module -ListAvailable | Where-Object {
($_.Name -notlike "Microsoft*" -and $_.Name -notlike "PS*") -and $_.HelpInfoUri
}
此範例示範如何使用多個條件建立 Where-Object 命令。
此命令會取得支援可更新說明功能的非核心模組。 此命令會使用 Cmdlet 的 Get-Module 參數來取得電腦上的所有模組。 管線運算符 (|) 會將模組傳送至 Where-Object Cmdlet,此 Cmdlet 會取得名稱不是以 Microsoft 或 PS開頭的模組,並具有 HelpInfoURI 屬性的值,這會告訴 PowerShell 在何處尋找模組的更新說明檔。 邏輯運算子 -and 連接比較語句。
此範例使用腳本區塊命令格式。 邏輯運算符,例如 -and、-or和 -not,只有在腳本區塊中才有效。 您無法在 Where-Object 命令的比較語句格式中使用它們。
- 如需 PowerShell 邏輯運算子的詳細資訊,請參閱 about_Logical_Operators。
- 如需可更新說明功能的詳細資訊,請參閱 about_Updatable_Help。
參數
-CContains
指出如果對象的屬性值與指定的值完全相符,這個 Cmdlet 會從集合取得 物件。 此作業區分大小寫。
例如:Get-Process | Where-Object ProcessName -CContains "svchost"
CContains 是指值的集合,如果集合包含與指定值完全相符的專案,則為 true。 如果輸入是單一物件,PowerShell 會將它轉換成一個物件的集合。
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
CaseSensitiveContainsSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-CEQ
指出如果屬性值與指定的值相同,這個 Cmdlet 會取得 物件。 此作業區分大小寫。
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
CaseSensitiveEqualSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-CGE
指出如果屬性值大於或等於指定的值,這個 Cmdlet 會取得 物件。 此作業區分大小寫。
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
CaseSensitiveGreaterOrEqualSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-CGT
指出如果屬性值大於指定的值,這個 Cmdlet 會取得 物件。 此作業區分大小寫。
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
CaseSensitiveGreaterThanSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-CIn
指出如果屬性值包含指定的值,這個 Cmdlet 會取得 物件。 此作業區分大小寫。
例如:Get-Process | Where-Object -Value "svchost" -CIn ProcessName
CIn 類似於 CContains,不同之處在於屬性和值位置會反轉。 例如,下列語句都是 true。
"abc", "def" -CContains "abc"
"abc" -CIn "abc", "def"
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
CaseSensitiveInSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-CLE
指出如果屬性值小於或等於指定的值,這個 Cmdlet 會取得 物件。 此作業區分大小寫。
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
CaseSensitiveLessOrEqualSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-CLike
指出如果屬性值符合包含通配符的值,則這個 Cmdlet 會取得 物件(*)。 此作業區分大小寫。
例如:Get-Process | Where-Object ProcessName -CLike "*host"
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
CaseSensitiveLikeSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-CLT
指出如果屬性值小於指定的值,這個 Cmdlet 會取得 物件。 此作業區分大小寫。
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
CaseSensitiveLessThanSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-CMatch
指出如果屬性值符合指定的正則表達式,這個 Cmdlet 會取得 物件。 此作業區分大小寫。 當輸入是單一物件時,相符的值會儲存在自動變數 $Matches 中。
例如:Get-Process | Where-Object ProcessName -CMatch "Shell"
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
CaseSensitiveMatchSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-CNE
指出如果屬性值與指定的值不同,這個 Cmdlet 會取得 物件。 此作業區分大小寫。
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
CaseSensitiveNotEqualSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-CNotContains
指出如果對象的屬性值與指定的值不完全相符,則這個 Cmdlet 會取得 物件。 此作業區分大小寫。
例如:Get-Process | Where-Object ProcessName -CNotContains "svchost"
NotContains 和 CNotContains 是指值的集合,而且當集合不包含與指定值完全相符的任何專案時,則為 true。 如果輸入是單一物件,PowerShell 會將它轉換成一個物件的集合。
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
CaseSensitiveNotContainsSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-CNotIn
指出如果屬性值與指定的值不完全相符,則這個 Cmdlet 會取得 物件。 此作業區分大小寫。
例如:Get-Process | Where-Object -Value "svchost" -CNotIn -Property ProcessName
NotIn 和 CNotIn 運算符類似於 NotContains 和 CNotContains,不同之處在於屬性和值位置會反轉。 例如,下列語句為 true。
"abc", "def" -CNotContains "Abc"
"abc" -CNotIn "Abc", "def"
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
CaseSensitiveNotInSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-CNotLike
指出如果屬性值不符合包含通配符的值,這個 Cmdlet 會取得 物件。 此作業區分大小寫。
例如:Get-Process | Where-Object ProcessName -CNotLike "*host"
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
CaseSensitiveNotLikeSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-CNotMatch
指出如果屬性值不符合指定的正則表達式,這個 Cmdlet 會取得 物件。 此作業區分大小寫。 當輸入是單一物件時,相符的值會儲存在自動變數 $Matches 中。
例如:Get-Process | Where-Object ProcessName -CNotMatch "Shell"
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
CaseSensitiveNotMatchSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Contains
指出如果物件屬性值中的任何專案與指定值完全相符,這個 Cmdlet 會取得 物件。
例如:Get-Process | Where-Object ProcessName -Contains "Svchost"
如果輸入是單一物件,PowerShell 會將它轉換成一個物件的集合。
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | IContains |
參數集
ContainsSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-EQ
指出如果屬性值與指定的值相同,這個 Cmdlet 會取得 物件。
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | IEQ |
參數集
EqualSet
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-FilterScript
指定用來篩選物件的腳本區塊。 以大括弧括住腳本區塊({})。
參數名稱 FilterScript 是選擇性的。
參數屬性
| 類型: | ScriptBlock |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
ScriptBlockSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-GE
指出如果屬性值大於或等於指定的值,這個 Cmdlet 會取得 物件。
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | IGE |
參數集
GreaterOrEqualSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-GT
指出如果屬性值大於指定的值,這個 Cmdlet 會取得 物件。
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | IGT |
參數集
GreaterThanSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-In
指出如果屬性值符合任何指定的值,這個 Cmdlet 會取得 物件。 例如:
Get-Process | Where-Object -Property ProcessName -In -Value "Svchost", "TaskHost", "WsmProvHost"
如果輸入是單一物件,PowerShell 會將它轉換成一個物件的集合。
如果對象的屬性值是陣列,PowerShell 會使用參考相等來判斷相符專案。
Where-Object 只有當 Property 參數的值和 Value 的任何值是物件的相同實例時,才會傳回 物件。
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | IIn |
參數集
InSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-InputObject
指定要篩選的物件。 您也可以使用管線將 物件傳送至 Where-Object。
當您搭配 使用 Where-Object 參數時,Cmdlet 會將 Where-Object 視為單一物件,而不是將命令結果傳送至 。 即使值是命令結果的集合,例如 -InputObject (Get-Process)也是如此。
由於 InputObject 無法從物件的陣列或集合傳回個別屬性,因此建議您, Where-Object 如果您使用 篩選那些在定義屬性中具有特定值的物件集合,您可以在 Where-Object 管線中使用,如本主題中的範例所示。
參數屬性
| 類型: | PSObject |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | True |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Is
指出如果屬性值是指定之 .NET 類型的實例,這個 Cmdlet 會取得 物件。 以方括弧括住類型名稱。
例如, Get-Process | Where-Object StartTime -Is [datetime]
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
IsSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-IsNot
指出如果屬性值不是指定之 .NET 類型的實例,這個 Cmdlet 會取得 物件。
例如, Get-Process | where StartTime -IsNot [datetime]
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
IsNotSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-LE
指出如果屬性值小於或等於指定的值,這個 Cmdlet 會取得 物件。
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | ILE |
參數集
LessOrEqualSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Like
指出如果屬性值符合包含通配符的值,則這個 Cmdlet 會取得 物件(*)。
例如:Get-Process | Where-Object ProcessName -Like "*host"
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | ILike |
參數集
LikeSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-LT
指出如果屬性值小於指定的值,這個 Cmdlet 會取得 物件。
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | ILT |
參數集
LessThanSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Match
指出如果屬性值符合指定的正則表達式,這個 Cmdlet 會取得 物件。 當輸入是單一物件時,相符的值會儲存在自動變數 $Matches 中。
例如:Get-Process | Where-Object ProcessName -Match "shell"
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | IMatch |
參數集
MatchSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-NE
指出如果屬性值與指定的值不同,這個 Cmdlet 會取得 物件。
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | INE |
參數集
NotEqualSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-NotContains
指出如果屬性值中沒有任何專案與指定值完全相符,則這個 Cmdlet 會取得 物件。
例如:Get-Process | Where-Object ProcessName -NotContains "Svchost"
NotContains 是指值的集合,如果集合不包含與指定值完全相符的任何專案,則為 true。 如果輸入是單一物件,PowerShell 會將它轉換成一個物件的集合。
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | INotContains |
參數集
NotContainsSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-NotIn
指出如果屬性值與任何指定值不完全相符,則這個 Cmdlet 會取得 物件。
例如:Get-Process | Where-Object -Value "svchost" -NotIn -Property ProcessName
如果 Value 的值是單一物件,PowerShell 會將它轉換成一個物件的集合。
如果對象的屬性值是陣列,PowerShell 會使用參考相等來判斷相符專案。
Where-Object 只有在 Property 的值和 Value 的任何值不是物件的相同實例時,才會傳回 物件。
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | INotIn |
參數集
NotInSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-NotLike
指出如果屬性值不符合包含通配符的值,則這個 Cmdlet 會取得 物件(*)。
例如:Get-Process | Where-Object ProcessName -NotLike "*host"
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | INotLike |
參數集
NotLikeSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-NotMatch
指出當屬性值不符合指定的正則表達式時,這個 Cmdlet 會取得 物件。 當輸入是單一物件時,相符的值會儲存在自動變數 $Matches 中。
例如:Get-Process | Where-Object ProcessName -NotMatch "powershell"
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | INotMatch |
參數集
NotMatchSet
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Property
指定輸入物件的屬性名稱。 屬性必須是實例屬性,而不是靜態屬性。 這是位置參數,因此名稱 Property 是選擇性的。
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | String |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
EqualSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
MatchSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveEqualSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
NotEqualSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveNotEqualSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
GreaterThanSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveGreaterThanSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
LessThanSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveLessThanSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
GreaterOrEqualSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveGreaterOrEqualSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
LessOrEqualSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveLessOrEqualSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
LikeSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveLikeSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
NotLikeSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveNotLikeSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveMatchSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
NotMatchSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveNotMatchSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
ContainsSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveContainsSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
NotContainsSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveNotContainsSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
InSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveInSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
NotInSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveNotInSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
IsSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
IsNotSet
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Value
指定屬性值。 參數名稱 Value 是選擇性的。 當搭配下列比較參數使用時,此參數會接受通配符:
- 點擊
- CNotLike 類
- Like
- 不喜歡
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | PSObject |
| 預設值: | None |
| 支援萬用字元: | True |
| 不要顯示: | False |
參數集
EqualSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
MatchSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveEqualSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
NotEqualSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveNotEqualSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
GreaterThanSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveGreaterThanSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
LessThanSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveLessThanSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
GreaterOrEqualSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveGreaterOrEqualSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
LessOrEqualSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveLessOrEqualSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
LikeSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveLikeSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
NotLikeSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveNotLikeSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveMatchSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
NotMatchSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveNotMatchSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
ContainsSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveContainsSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
NotContainsSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveNotContainsSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
InSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveInSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
NotInSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CaseSensitiveNotInSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
IsSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
IsNotSet
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CommonParameters
此 Cmdlet 支援一般參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。
輸入
PSObject
您可以將任何物件通過管道傳遞至此命令工具。
輸出
Object
此 Cmdlet 會從輸入物件集傳回選取的專案。
備註
Windows PowerShell 包含下列 Where-Object的別名:
?where
從 Windows PowerShell 4.0 開始,已新增 Where 和 ForEach 方法來搭配集合使用。
您可以在這裡深入了解這些方法 about_Arrays