在 .NET 中,如果您有一个子例程,其实现可能会从一个调用更改为另一个调用,您可以将委托传递给使用该子例程的方法。 您也可以在 Powershell 中执行此操作。您还可以使用已被描述为 Powershell 等效匿名函数的脚本块。然而,惯用的 powershell 使用了 powershell 的管道参数绑定。但委托和脚本块似乎都没有使用 Powershell 的管道参数绑定。
是否有一种(惯用的)方法可以以保留对管道参数绑定的支持的方式将 powershell 命令行开关传递给另一个命令行开关?
这是我希望能够做的代码片段:
Function Get-Square{
[CmdletBinding()]
Param([Parameter(ValueFromPipeline=$true)]$x)
PROCESS{$x*$x}
}
Function Get-Cube{
[CmdletBinding()]
Param([Parameter(ValueFromPipeline=$true)]$x)
PROCESS{$x*$x*$x}
}
Function Get-Result{
[CmdletBinding()]
Param([Parameter(ValueFromPipeline=$true)]$x,$Cmdlet)
PROCESS{$x | $Cmdlet}
}
10 | Get-Result -Cmdlet {Get-Square}
10 | Get-Result -Cmdlet {Get-Cube}