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:根据流程名称获取流程
文章图片
【PowerShell Where-Object使用例子】本示例中的命令获取以A字母开头的服务的名称。 -Match参数允许你使用正则表达式。
推荐阅读
- PowerShell While循环语句
- 纯净版xp系统如何取得未运用IP地址|XP系统取得未运用IP地址的技巧
- 中关村XP系统怎样破解rar密码|XP系统破解压缩文件密码的技巧
- win xp系统下360杀毒如何设置白名单【图文详细教程】
- WindowsXP系统下记事本无法保存如何处理【图文详细教程】
- xp系统下dsmain.exe进程出错如何处理|xp系统下dsmain.exe进程出错的原因
- xp系统下关闭softmanager.exe进程的2种办法|xp系统多了softmanager.exe进程怎样办
- windowsXP系统记事本在啥地方里|XP系统打开记事本的2种办法
- win xp系统如何查看硬件设置|win xp系统查看硬件设置的办法