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

时间:2013-01-04 10:17:10

标签: powershell powershell-v2.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 -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 ....

1 个答案:

答案 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