PowerShell Where-Object

17 Mar 2025 | 6 分钟阅读

PowerShell 中的 Where-Object 根据其属性值从集合中选择对象。

PowerShell 版本 3.0 开始,您可以通过以下两种不同的方式构建 Where-Object cmdlet

  1. 比较语句: 从 PowerShell 3.0 开始,我们可以在 Where-Object 命令中添加比较运算符作为参数。
  2. 脚本块: 我们可以使用脚本块来指定属性的名称和值以及比较运算符。Where-Object cmdlet 返回脚本块语句为真的所有对象。

语法


























参数

以下是此 cmdlet 中使用的参数

-Property

此参数用于指定对象属性的名称。它是可选的,并在 Windows PowerShell 的 3.0 版本中引入。

-Value

此参数用于指定属性的值。它与比较参数一起使用时接受通配符 (*)。它也是在 PowerShell 的 3.0 版本中引入的。

-InputObject

此参数用于指定要过滤的对象。我们还可以将对象传递给 Where-Object cmdlet。

-EQ

Where-Object cmdlet 使用此参数获取对象的属性值与指定值相同。

-FilterScript

此参数用于指定用于过滤对象的脚本块。您必须将脚本块括在花括号 {} 中。

-Match

Where-Object cmdlet 使用此参数获取对象的属性值与给定的正则表达式匹配。

-CEQ

Where-Object cmdlet 使用此参数获取对象的属性值与指定值相同。

-NE

Where-Object cmdlet 使用此参数获取对象的属性值与指定值不同。

-CNE

Where-Object cmdlet 使用此参数获取对象的属性值与指定值不同。此操作区分大小写。

-GT

Where-Object cmdlet 使用此参数获取对象的属性值大于给定值。

-CGT

Where-Object cmdlet 使用此参数获取对象的属性值大于给定值。此操作区分大小写。

-LT

Where-Object cmdlet 使用此参数获取对象的属性值小于给定值。

-CLT

Where-Object cmdlet 使用此参数获取对象的属性值小于给定值。此操作区分大小写。

-GE

Where-Object cmdlet 使用此参数获取对象的属性值大于或等于给定值。

-CGE

Where-Object cmdlet 使用此参数获取对象的属性值大于或等于给定值。此操作区分大小写。

-LE

Where-Object cmdlet 使用此参数获取对象的属性值小于或等于给定值。

-CLE

Where-Object cmdlet 使用此参数获取对象的属性值小于或等于给定值。此操作区分大小写。

-Like

Where-Object cmdlet 使用此参数获取对象的属性值与包含通配符的 value 匹配。

-CLike

Where-Object cmdlet 使用此参数获取对象的属性值与包含通配符的 value 匹配。此操作区分大小写。

-NotLike

Where-Object cmdlet 使用此参数获取对象的属性值与不包含通配符的 value 匹配。

-CNotLike

Where-Object cmdlet 使用此参数获取对象的属性值与不包含通配符的 value 匹配。此操作区分大小写。

-CMatch

Where-Object cmdlet 使用此参数获取对象的属性值与给定的正则表达式匹配。此操作区分大小写

-NotMatch

Where-Object cmdlet 使用此参数获取对象的属性值与给定的正则表达式不匹配。如果输入是标量,则匹配的值将保存在 $Matches 自动变量中。

-CNotMatch

Where-Object cmdlet 使用此参数获取对象的属性值与给定的正则表达式不匹配。此操作区分大小写。

-Contains

Where-Object cmdlet 使用此参数从集合中获取对象的属性值与给定值匹配。

-CContains

Where-Object cmdlet 使用此参数获取对象的属性值中的项目与给定值匹配。此操作区分大小写。

-NotContains

Where-Object cmdlet 使用此参数获取对象的属性值中的任何项目都不与给定值匹配。

-CNotContains

Where-Object cmdlet 使用此参数获取对象的属性值中的一个项目不与给定值匹配。此操作区分大小写。

-In

Where-Object cmdlet 使用此参数获取对象的属性值与任何给定值匹配。

-CIn

Where-Object cmdlet 使用此参数获取对象的属性值与任何给定值匹配。此操作区分大小写。

-NotIn

Where-Object cmdlet 使用此参数获取对象的属性值与任何给定值都不匹配。

-CNotIn

Where-Object cmdlet 使用此参数获取对象的属性值与任何给定值都不匹配。此操作区分大小写。

-Is

Where-Object cmdlet 使用此参数获取对象的属性值是给定 .NET Framework 类型的实例。您必须将类型的名称括在方括号中。

-IsNot

Where-Object cmdlet 使用此参数获取对象的属性值不是给定 .NET Framework 类型的实例。

示例

示例 1:获取已停止的服务

PowerShell Where-Object PowerShell Where-Object

此示例中的两个命令都获取当前已停止的服务的列表。第一个命令使用脚本块的格式,第二个命令使用比较语句的格式。

示例 2:根据进程名称获取进程

PowerShell Where-Object

此示例中的命令获取以字母 A 开头的服务名称。-Match 参数允许您使用正则表达式。


下一主题PowerShell 变量