如何直接将PowerShell函数返回的数组项作为独立参数传递?
PowerShell直接展开函数返回数组作为独立参数
可以直接实现,无需借助中间变量。
解决方法
利用PowerShell的数组展开(splatting)特性,直接通过@()包裹函数调用表达式,就能将返回的数组元素逐个作为独立参数传递给目标函数:
function f1 { return 1, 2, 3 } function f2 { Write-Output $args.Length } # 直接展开传递,输出结果为3 f2 @(f1)
原理说明
- 原写法
f2 (f1)会把f1返回的整个数组当作单个参数传入f2,因此$args.Length输出1; - 使用
@(f1)时,@()会确保f1的返回值被识别为数组,再通过@前缀触发展开逻辑,将数组的每个元素拆分为独立参数传递给f2,此时$args.Length会正确返回3。
内容的提问来源于stack exchange,提问作者Holt
相关产品推荐
相关产品推荐

