首页 文章

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

提问于
浏览
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

Output

"start "

Expected

"start 1 2 3 "

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

Update

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

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

MyFunction -output $output1
MyFunction -output $output2

WriteHost($output1)
WriteHost($output2)

期待结果

start1 ....从MyFunction start2中追加....从MyFunction中追加

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
    

相关问题