用于调用另一个命令的$ @的Powershell模拟是什么?

时间:2010-09-05 20:42:00

标签: scripting shell powershell

在Unix shell脚本中,要对脚本的原始参数调用命令foo,只需编写

foo $@

在Powershell中,$args是包含当前脚本参数的(通常)字符串数组。如果你写

foo $args

会发生与bash或其他典型的Unix shell脚本解释器相同的事情吗?

1 个答案:

答案 0 :(得分:3)

您希望使用PowerShell 2.0中新增的参数splatting。用于splatting的变量可以是数组(args在位置上绑定)或哈希表(键映射到参数名称,它们的值提供参数)。如果您未声明任何参数,请使用@args。尝试使用$args的问题在于,它将作为数组发送到第一个参数,而不是溅在所有参数上。然而,许多人确实声明了参数。在这种情况下,您希望使用@PSBoundParameters,例如:

foo @PSBoundParameters