如下说明是翻译
: 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