可以在PowerShell中使用条件管道吗?

时间:2011-05-19 16:23:15

标签: powershell

假设我只想根据变量的值将输出传递给另一个函数,是否有一些方法可以在PowerShell中执行此操作?

示例:

 if ($variable -eq "value"){$output | AnotherFunction}
  else {$output}

@mjolinor的例子就是我现在正在做的事情,只是好奇是否有更好的方法。

4 个答案:

答案 0 :(得分:6)

您可以使用If子句:

 if ($variable -eq "value"){$output | AnotherFunction}
  else {$output}

作为过滤器实现的示例:

 filter myfilter{
   if ($variable -eq "value"){$_ | AnotherFunction}
   else {$_}
 }

然后:

 $variable = <some value>
 get-something | myfilter

答案 1 :(得分:2)

您可以通过管道Where-Object获得所需的结果。

示例:

My-Command | Where-Object {$variable -eq "value"} | AnotherFunction

答案 2 :(得分:0)

如果其他函数是你的,你可以发送$ variable作为参数,让你的函数在param为true时通过未修改的对象传递。基本上,你使用AnotherFunction()作为Mjolinor的过滤器。

答案 3 :(得分:0)

在这个question中,我问过如何在管道中使用if语句。它演示了如何根据条件将数据传输到其他函数。