1

我确定这是一个愚蠢的问题,但我似乎无法在函数中向数组添加元素。

PowerShell 2.0

$jobResult = @()

function Gather-JobResults {
    Param (
        [Parameter(Mandatory=$true, ValueFromPipeline=$true)]
        [string] $message
    )
    begin {}
    process {
        $jobResult += ([string]::Format("{0} - {1}", (Get-Date -f "yyyy-MM-dd HH:mm:ss"), $message))
        Write-Host "--- Status jobResult ---> $jobResult"
    }
    end{}
}

Gather-JobResults("zabaaa")
Gather-JobResults("zaaaauuuuuuuul")
Gather-JobResults("winkoooo")

$jobResult

$jobResult我打电话给 3x 后它是空的,我Gather-JobResults该如何解决这个问题?

感谢您的任何回答

4

1 回答 1

4

这是一个范围问题,当您在函数中修改 $jobResult 时,您不会修改在此函数之外定义的全局变量。

在你的函数内部使用$global:jobResult += ...(或 $script:jobResult),应该没问题

查看About_scope 帮助页面

于 2013-09-10T13:14:59.230 回答