我有一个方法,它接受一个字符串作为参数。此字符串与值连接。在处理结束时,我需要完整的连接字符串
function MyFunction()
{
Param ($output)
$msg = "x " #say this x was different per call
$output += $msg
}
$output = "start "
MyFunction -output $output
MyFunction -output $output
MyFunction -output $output
Write-Host $output
输出
"start "
预期
"start 1 2 3 "
我查找了[ref],但这适用于值类型而不是引用类型。
更新
如何将不同的命名变量传递给函数,即
$output1 = "start1 "
$output2 = "start2 "
MyFunction -output $output1
MyFunction -output $output2
WriteHost($output1)
WriteHost($output2)
期待结果
从MyFunction中追加的start1 .... 从MyFunction
中追加的start2 ....答案 0 :(得分:4)
在您的函数内部,您与脚本的其余部分不在同一范围内。 因此,在使用$ script:output:
更新$ output时,必须指定脚本范围$output= "start "
function MyFunction()
{
Param ($output)
$msg = "x " #say this x was different per call
$script:output+=$msg
}
MyFunction -output $output
MyFunction -output $output
MyFunction -output $output
Write-Host $output