【发布时间】:2011-08-14 03:54:21
【问题描述】:
我正在尝试在管道中使用if。
我知道有where(别名?)过滤器,但是如果我只想在满足某个条件时才激活过滤器怎么办?
我的意思是,例如:
得到一些东西| ? {$_.someone -eq 'somespecific'} |格式表如何在管道内部使用if来开启/关闭过滤器?可能吗?有意义吗?
谢谢
编辑澄清
如果没有管道,它看起来像这样:
如果($过滤器){ 得到一些东西| ? {$_.someone -eq 'somespecific'} } 别的 { 取得一些东西 }在 ANSWER 的 riknik 之后编辑
显示我正在寻找的内容的愚蠢示例。您有一个存储在变量 $data 上的非规范化数据表,并且您想要执行一种“向下钻取”数据过滤:
例如,如果我只想按特定父级过滤:
datafilter -parent -myparent 'myparent' -data $mydata
这是利用? 的非常优雅、高效且简单的方法。尝试使用if 做同样的事情,你就会明白我的意思。
【问题讨论】:
-
我想你的意思是写:get-something | ? { $_.someone -eq 'somespecific' } |格式表你有 ( 和 ) 而不是 { 和 }。
-
@x0n:你说得对,我刚刚更正了错误代码。谢谢
标签: powershell pipeline conditional-statements statements