如下说明是翻译: help where-object 产生的帮助信息.
译者: Edengundam(马涛)
Where-Object
大纲
创建一个用来控制输入对象是否沿着命令管道被传递的过滤器.
语法
Where-Object [-filterScript] <scriptblock> [-inputObject <psobject>] [<CommonParameters>]
详细描述
创建一个用来控制输入对象是否沿着命令管道被传递的过滤器. 它将过滤从管道或通过InputObject参数所输入的对象. 它通过可能包含对需要过滤的对象引用的代码块进行求值, 来决定该对象是否沿着管道被出书. 如果求值结果为真(true), 则该对象沿着管道被输出, 否则该对象将被丢弃.
参数
-filterScript <scriptblock>
指定一个用去确定输入对象是否沿着命令管道被输出的代码块.
强制参数?
|
true
|
参数位置?
|
1
|
默认值
|
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-inputObject <psobject>
指定被过滤的对象. 如果你将命令的输出保存在一个变量中, 你可以使用InputObject将该变量的值传递给Where-Object. 然而通常情况, InputObject不会在命令行使用. 当对象从管道中输入时, Windows PowerShell将负责把输入对象和InputObject参数相绑定.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
|
允许从管道绑定输入?
|
true (传值)
|
允许通配符扩展?
|
false
|
<公共参数>
此命令支持公共参数: -Verbose, -Debug, -ErrorAction, -ErrorVariable, and -OutVariable. 更多信息, 输入, "get-help about_commonparameters".
注意
更多信息, 输入"Get-Help Where-Object -detailed".需要技术信息, 输入"Get-Help Write-Object -full".
如果需要为该命令提供多个参数, 请使用逗号进行分隔. 例如, "<parameter-name> <value1>, <value2>".
例1
C:/PS>get-service | where-object {$_.Status -eq "Stopped"}
此命令返回当前停止的服务列表.
例2
C:/PS>get-process | where-object {$_.workingset -gt 25000*1024}
此命令列出工作集(workingset)大于25000K的进程. 工作集属性的值按照字节单位存储, 因此需要乘以1024.
例3
C:/PS>get-process | where-object { $_.ProcessName -match "^p.*" }
此命令列出进程名称以字母p开头的所有进程. Match运算符允许在Where子句中使用正则表达式.
例4
C:/PS>get-process -name svchost | where-object {$True}
此命令列出所有叫svchost的进程. where-object cmdlet对脚本块进行求值, 通常情况下脚本块包含一个对当前管道中对象的引用 ($_), 将脚本块的输出值转换为布尔类型: True或False. 如果结果为True, 则此对象被沿着管道继续传递, 否则该对象被丢弃. 此例子中, 脚本块只返回True, 所以所有的对象都沿着管道被输出.
相关链接
Select-Object
about_where
about_regular_expression