可以解释为什么哲学上这不起作用? 就像一个学习示例一样,我希望看到get-service cmdlet的属性,而不需要事件或方法。
PS C:\Users\Neal> get-service | get-member | {$_.name -eq "Property"}
结果:
At line:1 char:29
+ get-service | get-member | {$_.name -eq "Property"}
+ ~~~~~~~~~~~~~~~~~~~~~~~~
Expressions are only allowed as the first element of a pipeline.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : ExpressionsMustBeFirstInPipeline
答案 0 :(得分:5)
{$_.name -eq "Property"}
只是scriptblock。如果您想使用Where-Object
来过滤get-member
的结果,则需要输入Where-Object
:
PS C:\Users\Neal> get-service | get-member | Where-Object {$_.name -eq "Property"}
或者您可以使用where
,Where-Object
的别名:
PS C:\Users\Neal> get-service | get-member | where {$_.name -eq "Property"}
甚至有一个特殊字符?
引用Where-Object
:
PS C:\Users\Neal> get-service | get-member | ? {$_.name -eq "Property"}
上面给出的所有三个例子都做同样的事情。选择它们只是风格问题。