Get-Module -ListAvailable | Where-Object {
($_.Name -notlike "Microsoft*" -and $_.Name -notlike "PS*") -and $_.HelpInfoUri
此示例演示如何创建具有多个条件的 Where-Object
命令。
此命令可获取用于支持可更新帮助功能的非核心模块。 该命令使用 Get-Module
cmdlet 的 ListAvailable 参数来获取计算机上的所有模块。 管道运算符 (|
) 将模块发送到 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 中引入了此参数。
Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
指示如果属性值与指定值相同,则此 cmdlet 获取对象。
此操作区分大小写。
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
指示如果属性值大于或等于指定值,则此 cmdlet 获取对象。 此操作区分大小写。
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
指示如果属性值大于指定值,则此 cmdlet 获取对象。
此操作区分大小写。
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
指示如果属性值包含指定的值,则此 cmdlet 获取对象。 此操作区分大小写。
例如:Get-Process | Where-Object -Value "svchost" -CIn ProcessName
CIn 类似于 CContains,但属性和值位置相反。 例如,以下语句都为 true。
"abc", "def" -CContains "abc"
"abc" -CIn "abc", "def"
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
指示如果属性值小于或等于指定值,则此 cmdlet 获取对象。 此操作区分大小写。
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
-CLike
指示如果属性值与包含通配符 (*
) 的值匹配,则此 cmdlet 获取对象。 此操作区分大小写。
例如:Get-Process | Where-Object ProcessName -CLike "*host"
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
指示如果属性值小于指定值,则此 cmdlet 获取对象。 此操作区分大小写。
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
-CMatch
指示如果属性值与指定的正则表达式匹配,则此 cmdlet 获取对象。 此操作区分大小写。 当输入是单个对象时,匹配的值将保存在 $Matches
自动变量中。
例如:Get-Process | Where-Object ProcessName -CMatch "Shell"
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
指示如果属性值不同于指定值,则此 cmdlet 获取对象。
此操作区分大小写。
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
-CNotContains
指示如果对象的属性值与指定值不完全匹配,则此 cmdlet 获取对象。 此操作区分大小写。
例如:Get-Process | Where-Object ProcessName -CNotContains "svchost"
NotContains 和 CNotContains 指的是值的集合,并且在该集合不包含与指定值完全匹配的任何项时为 true。 如果输入是单个对象,则 PowerShell 会将其转换为单个对象的集合。
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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"
Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
-CNotLike
指示如果属性值与包含通配符的值不匹配,则此 cmdlet 获取对象。 此操作区分大小写。
例如:Get-Process | Where-Object ProcessName -CNotLike "*host"
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
-CNotMatch
指示如果属性值与指定的正则表达式不匹配,则此 cmdlet 获取对象。 此操作区分大小写。 当输入是单个对象时,匹配的值将保存在 $Matches
自动变量中。
例如:Get-Process | Where-Object ProcessName -CNotMatch "Shell"
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
-Contains
指示如果对象属性值中的任何项与指定值完全匹配,则此 cmdlet 获取对象。
例如:Get-Process | Where-Object ProcessName -Contains "Svchost"
如果输入是单个对象,则 PowerShell 会将其转换为单个对象的集合。
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Aliases:IContains
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
指示如果属性值与指定值相同,则此 cmdlet 获取对象。
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Aliases:IEQ
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
-FilterScript
指定用于筛选对象的脚本块。 将脚本块括在大括号 ({}
) 中。
参数名称 FilterScript 是可选项。
Type:ScriptBlock
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
指示如果属性值大于或等于指定值,则此 cmdlet 获取对象。
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Aliases:IGE
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
指示如果属性值大于指定值,则此 cmdlet 获取对象。
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Aliases:IGT
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
指示如果属性值与任何指定值匹配,则此 cmdlet 获取对象。
Get-Process | Where-Object -Property ProcessName -in -Value "Svchost", "TaskHost", "WsmProvHost"
如果输入是单个对象,则 PowerShell 会将其转换为单个对象的集合。
如果对象的属性值是数组,则 PowerShell 使用引用相等性来确定匹配项。 仅当 Property 参数的值和 Value 的任何值是对象的同一实例时,Where-Object
才会返回对象。
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Aliases:IIn
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
指定要筛选的对象。 还可以通过管道将对象传递给 Where-Object
。
将 InputObject 参数用于 Where-Object
时,cmdlet 将 InputObject 视为单个对象,而不是通过管道将命令结果传递给 Where-Object
。 即使值是命令的结果(如 -InputObject (Get-Process)
),也是如此。
由于 InputObject 无法返回来自数组或对象集合的单个属性,因此如果你使用 Where-Object
为在定义的属性中具有特定值的对象筛选对象集合,则建议在管道中使用 Where-Object
,如本主题的示例中所示。
Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False
指示如果属性值是指定 .NET 类型的实例,则此 cmdlet 获取对象。 将类型名称括在方括号中。
例如: Get-Process | Where-Object StartTime -Is [DateTime]
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
-IsNot
指示如果属性值不是指定 .NET 类型的实例,则此 cmdlet 获取对象。
例如: Get-Process | where StartTime -IsNot [DateTime]
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
指示如果属性值小于或等于指定值,则此 cmdlet 获取对象。
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Aliases:ILE
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
-Like
指示如果属性值与包含通配符 (*
) 的值匹配,则此 cmdlet 获取对象。
例如:Get-Process | Where-Object ProcessName -Like "*host"
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Aliases:ILike
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
指示如果属性值小于指定值,则此 cmdlet 获取对象。
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Aliases:ILT
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
-Match
指示如果属性值与指定的正则表达式匹配,则此 cmdlet 获取对象。 当输入是单个对象时,匹配的值将保存在 $Matches
自动变量中。
例如:Get-Process | Where-Object ProcessName -Match "shell"
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Aliases:IMatch
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
指示如果属性值不同于指定值,则此 cmdlet 获取对象。
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Aliases:INE
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
指示如果属性不存在或为值 $null
或值 $false
,则此 cmdlet 获取对象。
例如:Get-Service | Where-Object -Not "DependentServices"
已在 Windows PowerShell 6.1 中引入了此参数。
Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
-NotContains
指示如果属性值中没有项与指定值完全匹配,则此 cmdlet 获取对象。
例如:Get-Process | Where-Object ProcessName -NotContains "Svchost"
NotContains 引用值集合,如果集合不包含与指定值完全匹配的任何项,则为 true。 如果输入是单个对象,则 PowerShell 会将其转换为单个对象的集合。
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Aliases:INotContains
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
-NotIn
指示如果属性值与任何指定值不完全匹配,则此 cmdlet 获取对象。
例如:Get-Process | Where-Object -Value "svchost" -NotIn -Property ProcessName
如果 Value 的值是单个对象,PowerShell 会将其转换为一个对象的集合。
如果对象的属性值是数组,则 PowerShell 使用引用相等性来确定匹配项。 仅当 Property 的值和 Value 的任何值不是对象的同一实例时,Where-Object
才会返回对象。
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Aliases:INotIn
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
-NotLike
指示如果属性值与包含通配符 (*
) 的值不匹配,则此 cmdlet 获取对象。
例如:Get-Process | Where-Object ProcessName -NotLike "*host"
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Aliases:INotLike
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
-NotMatch
指示如果属性值与指定的正则表达式不匹配,则此 cmdlet 获取对象。 当输入是单个对象时,匹配的值将保存在 $Matches
自动变量中。
例如:Get-Process | Where-Object ProcessName -NotMatch "PowerShell"
已在 Windows PowerShell 3.0 中引入了此参数。
Type:SwitchParameter
Aliases:INotMatch
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
-Property
指定对象属性的名称。 参数名称 Property 是可选的。
已在 Windows PowerShell 3.0 中引入了此参数。
Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False
-Value
指定属性值。 参数名称 Value 是可选的。 此参数在与以下比较参数一起使用时接受通配符:
CLike
CNotLike
NotLike
已在 Windows PowerShell 3.0 中引入了此参数。
Type:PSObject
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True
PSObject
你可以通过管道将任何对象传递给此 cmdlet。
Object
此 cmdlet 返回输入对象集中的选定项。
PowerShell 包含 Where-Object
的以下别名:
所有平台: