在powershell中,我有一个函数,我想返回多个值并将这些值用作第二个函数的位置参数。不幸的是,它以数组的形式返回一组值。如何避免这种情况?
此外,是否可以在不引入新变量的情况下避免这种行为?我知道我可以将返回的数组传递给变量,然后将其作为函数的参数进行喷溅,但我想尽可能避免这种情况。
说明我遇到的问题的代码如下:
function Return-Values{
return "One", "Two", "Three"
}
function Print-Args{
param($One,$Two,$Three)
Write-Host "1" $One
Write-Host "2" $Two
Write-Host "3" $Three
}
Print-Args (Return-Values)
输出为:
1 One Two Three
2
3
我希望输出为:
1 One
2 Two
3 Three
答案 0 :(得分:1)
您可以使用About Splatting。我无法如您所愿地完成功能工作。以下示例仅用一行代码即可完成您所希望的。也许别人知道另一种方式。
function Return-Values{
return "One", "Two", "Three"
}
[System.Array]$InputArray = Return-Values #Get the input values as an array
function Print-Args{
param($One,$Two,$Three)
Write-Host "1" $One
Write-Host "2" $Two
Write-Host "3" $Three
}
Print-Args @InputArray #Use splatting for the input parameters