无论如何根据某些条件将管道数据发送到两个不同的路径,而不重新执行上游命令?这里的符号都错了,但这是我想看到的......
PS> Get-SomeInterestingData `
| ?{ <condition> } `
| %{ <positive> } `
| %{ <negative> }
Run Code Online (Sandbox Code Playgroud)
我可以用嵌套的管道/表达式做到这一点吗?
PS> Get-SomeInterestingData `
| %{
$_ | ?{ <condition> } | %{ <positive> } -or `
$_ | ?{ -not <condition> } | %{ <positive> }
}
Run Code Online (Sandbox Code Playgroud)
如果您无法直接访问数据或数据生成功能,但是您从管道接收它,该怎么办?比如说,作为脚本或函数param块的一部分,就像......
param(
[Parameter(ValueFromPipeline = $true)]
$InputObject,
)
Run Code Online (Sandbox Code Playgroud)
在PowerShell 4.0及更高版本中,您可以Where()在Split模式下使用扩展方法:
$Even,$Odd = @(1..10).Where({$_ % 2 -eq 0},'Split')
Run Code Online (Sandbox Code Playgroud)
输入集合将分为2个,满足过滤器的项目和不满足过滤器的项目.然后,您可以处理每个,而无需再次定义输入集合
| 归档时间: |
|
| 查看次数: |
151 次 |
| 最近记录: |