PowerShell Where-Object使用例子

PowerShell中的Where-Object根据对象的属性值从集合中选择对象。
使用PowerShell 3.0的启动版, 可以通过以下两种不同的方式构造Where-Object cmdlet:

  1. 比较声明:随着PowerShell 3.0的启动, 我们可以将比较运算符添加为Where-Object命令中的参数。
  2. 脚本块:我们可以使用脚本块来指定属性的名称和值以及比较运算符。 Where-Object cmdlet返回脚本块语句为true的所有对象。
句法
Where-Object [-Property] < string> [[-Value] < Object> ] [-InputObject < psobject> ] [-EQ][< CommonParameters> ]

Where-Object [-FilterScript] < scriptblock> [-InputObject < psobject> ] [< CommonParameters> ]

Where-Object [-Property] < string> [[-Value] < Object> ] -Match [-InputObject < psobject> ][< CommonParameters> ]

Where-Object [-Property] < string> [[-Value] < Object> ]-CEQ [-InputObject < psobject> ][< CommonParameters> ]

Where-Object [-Property] < string> [[-Value] < Object> ] -NE [-InputObject < psobject> ][< CommonParameters> ]

Where-Object [-Property] < string> [[-Value] < Object> ] -CNE [-InputObject < psobject> ][< CommonParameters> ]

Where-Object [-Property] < string> [[-Value] < Object> ] -GT [-InputObject < psobject> ][< CommonParameters> ]

Where-Object [-Property] < string> [[-Value] < Object> ] -CGT [-InputObject < psobject> ][< CommonParameters> ]

Where-Object [-Property] < string> [[-Value] < Object> ] -LT [-InputObject < psobject> ][< CommonParameters> ]Where-Object [-Property] < string> [[-Value] < Object> ] -CLT [-InputObject < psobject> ][< CommonParameters> ]Where-Object [-Property] < string> [[-Value] < Object> ] -GE [-InputObject < psobject> ][< CommonParameters> ]< /textarea> < /div> < br> < div class="codeblock"> < textarea name="code" class="xml"> Where-Object [-Property] < string> [[-Value] < Object> ] -CGE [-InputObject < psobject> ][< CommonParameters> ]< /textarea> < /div> < br> < div class="codeblock"> < textarea name="code" class="xml"> Where-Object [-Property] < string> [[-Value] < Object> ] -LE [-InputObject < psobject> ][< CommonParameters> ]< /textarea> < /div> < br> < div class="codeblock"> < textarea name="code" class="xml"> Where-Object [-Property] < string> [[-Value] < Object> ] -CLE [-InputObject < psobject> ][< CommonParameters> ]

Where-Object [-Property] < string> [[-Value] < Object> ] -Like [-InputObject < psobject> ][< CommonParameters> ]

Where-Object [-Property] < string> [[-Value] < Object> ] -CLike [-InputObject < psobject> ][< CommonParameters> ]

Where-Object [-Property] < string> [[-Value] < Object> ] -NotLike [-InputObject < psobject> ][< CommonParameters> ]

Where-Object [-Property] < string> [[-Value] < Object> ] -CNotLike [-InputObject < psobject> ][< CommonParameters> ]

Where-Object [-Property] < string> [[-Value] < Object> ] -CMatch [-InputObject < psobject> ][< CommonParameters> ]

Where-Object [-Property] < string> [[-Value] < Object> ] -NotMatch [-InputObject < psobject> ][< CommonParameters> ]

Where-Object [-Property] < string> [[-Value] < Object> ] -CNotMatch [-InputObject < psobject> ][< CommonParameters> ]

Where-Object [-Property] < string> [[-Value] < Object> ] -Contains [-InputObject < psobject> ][< CommonParameters> ]

Where-Object [-Property] < string> [[-Value] < Object> ] -CContains [-InputObject < psobject> ][< CommonParameters> ]

Where-Object [-Property] < string> [[-Value] < Object> ] -NotContains [-InputObject < psobject> ] [< CommonParameters> ]

Where-Object [-Property] < string> [[-Value] < Object> ] -CNotContains [-InputObject < psobject> ][< CommonParameters> ]

Where-Object [-Property] < string> [[-Value] < Object> ] -In [-InputObject < psobject> ][< CommonParameters> ]

Where-Object [-Property] < string> [[-Value] < Object> ] -CIn [-InputObject < psobject> ][< CommonParameters> ]

Where-Object [-Property] < string> [[-Value] < Object> ] -NotIn [-InputObject < psobject> ][< CommonParameters> ]

Where-Object[-Property] < string> [[-Value] < Object> ]-CNotIn [-InputObject < psobject> ][< CommonParameters> ]

Where-Object [-Property] < string> [[-Value] < Object> ] -Is [-InputObject < psobject> ][< CommonParameters> ]

Where-Object [-Property] < string> [[-Value] < Object> ] -IsNot [-InputObject < psobject> ][< CommonParameters> ]

参数
以下是此cmdlet中使用的参数:
-属性
此参数用于指定对象属性的名称。它是可选的, 并在Windows PowerShell的3.0版本中引入。
-值
此参数用于指定属性的值。与比较参数一起使用时, 它接受通配符(*)。它也是在PowerShell 3.0版中引入的。
-InputObject
此参数用于指定要过滤的对象。我们还可以将对象通过管道传递给Where-Object cmdlet。
-情商
如果属性的值与指定的值相同, 则Where-Object cmdlet使用此参数获取对象。
-FilterScript
此参数用于指定用于过滤对象的脚本块。你必须将脚本块放在大括号{}中。
-比赛
如果属性的值与给定的正则表达式匹配, 则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使用此参数获取对象。此操作区分大小写。
-喜欢
如果属性的值与包含通配符的值匹配, 则Where-Object cmdlet使用此参数获取对象。
-点击
如果属性的值与包含通配符的值匹配, 则Where-Object cmdlet使用此参数获取对象。此操作区分大小写。
-不喜欢
如果属性的值与包含通配符的值不匹配, 则Where-Object cmdlet使用此参数获取对象。
-CNotLike
如果属性的值与包含通配符的值不匹配, 则Where-Object cmdlet使用此参数获取对象。此操作区分大小写。
-CMatch
如果属性的值与给定的正则表达式匹配, 则Where-Object cmdlet使用此参数获取对象。此操作区分大小写
-不匹配
如果属性的值与给定的正则表达式不匹配, 则Where-Object cmdlet使用此参数获取对象。如果输入为标量, 则匹配的值将保存或存储在$ Matches自动变量中。
-CNotMatch
如果属性的值与给定的正则表达式不匹配, 则Where-Object cmdlet使用此参数获取对象。此操作区分大小写。
-包含
如果对象的属性值与给定值匹配, 则Where-Object cmdlet使用此参数从集合中获取对象。
-C包含
如果对象的属性值中的项与给定值匹配, 则Where-Object cmdlet使用此参数获取对象。此操作区分大小写。
-不包含
如果对象的属性值中的任何项均与给定值不匹配, 则Where-Object cmdlet使用此参数获取对象。
-CNotContains
如果对象的属性值中的项与给定值不匹配, 则Where-Object cmdlet使用此参数获取对象。此操作区分大小写。
-在
如果属性的值与任何给定值匹配, 则Where-Object cmdlet使用此参数获取对象。
在-c
如果属性的值与任何给定值匹配, 则Where-Object cmdlet使用此参数获取对象。此操作区分大小写。
-NotIn
如果属性的值与任何给定值都不匹配, 则Where-Object cmdlet使用此参数获取对象。
-CNotIn
如果属性的值与任何给定值都不匹配, 则Where-Object cmdlet使用此参数获取对象。此操作区分大小写。
-是
如果属性的值是给定.NET Framework类型的实例, 则Where-Object cmdlet使用此参数获取对象。你必须将类型的名称括在方括号中。
-不是
如果属性的值不是给定.NET Framework类型的实例, 则Where-Object cmdlet使用此参数获取对象。
例子
示例1:获取停止的服务
PowerShell Where-Object使用例子

文章图片
PowerShell Where-Object使用例子

文章图片
此示例中的两个命令都获取当前停止的所有服务的列表。第一个命令使用脚本块的格式, 第二个命令使用比较语句的格式。
示例2:根据流程名称获取流程
PowerShell Where-Object使用例子

文章图片
【PowerShell Where-Object使用例子】本示例中的命令获取以A字母开头的服务的名称。 -Match参数允许你使用正则表达式。

    推荐阅读