如何附加到powershell中传递给函数的字符串

如何附加到powershell中传递给函数的字符串,powershell,powershell-2.0,string-concatenation,Powershell,Powershell 2.0,String Concatenation,我有一个将字符串作为参数的方法。此字符串与值连接。在处理结束时,我需要完整的连接字符串 function MyFunction() { Param ($output) $msg = "x " #say this x was different per call $output += $msg } $output = "start " MyFunction -output $output MyFunction -output $output MyFunction -ou

我有一个将字符串作为参数的方法。此字符串与值连接。在处理结束时,我需要完整的连接字符串

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
输出

期望

我用[ref]查找过,但这适用于值类型,而不是引用类型

更新

如何将不同的命名变量传递给函数,即

$output1 = "start1 "
$output2 = "start2 "

MyFunction -output $output1
MyFunction -output $output2

WriteHost($output1)
WriteHost($output2)
预期结果

开始。。。。从MyFunction中追加
开始。。。。从MyFunction中追加,与脚本的其余部分不在同一范围内。 因此,在使用$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

在函数内部,与脚本的其余部分不在同一范围内。 因此,在使用$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

更新了我的问题以包含不同的命名变量,有什么想法吗?你希望得到什么结果?再次更新,我传递给我想要附加到的函数的变量,然后显示结果。在我看来,声明的变量名必须与函数中的变量名相同?在函数末尾添加$script:output,该函数应该可以执行您想要的操作,但变量名为$output1和$output2。你能解释更多吗?更新了我的问题,包括不同的命名变量,有什么想法吗?你希望得到什么结果?再次更新,我传递给我想要附加到的函数的变量,然后显示结果。在我看来,声明的变量名必须与函数中的变量名相同?在函数末尾添加$script:output,该函数应该可以执行您想要的操作,但变量名为$output1和$output2。你能再解释一下吗?
$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