1

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

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)

期待结果

start1.... 从 MyFunction 中附加 start2.... 从 MyFunction 中附加

4

1 回答 1

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
于 2013-01-04T10:29:15.363 回答