PowerShell中的Where-Object根据对象的属性值从集合中选择对象。
使用PowerShell 3.0的启动版, 可以通过以下两种不同的方式构造Where-Object cmdlet:
- 比较声明:随着PowerShell 3.0的启动, 我们可以将比较运算符添加为Where-Object命令中的参数。
- 脚本块:我们可以使用脚本块来指定属性的名称和值以及比较运算符。 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:获取停止的服务
此示例中的两个命令都获取当前停止的所有服务的列表。第一个命令使用脚本块的格式, 第二个命令使用比较语句的格式。
示例2:根据流程名称获取流程
本示例中的命令获取以A字母开头的服务的名称。 -Match参数允许你使用正则表达式。
评论前必须登录!
注册