我写 Poweshell Cmdlets 并不断出错
#cut
$global:Vertraege = @{}
function xy
{
#local access is working
$local_Vertraege = @{}
$local_Vertraege += ( @{ i=1; ag="AG1"; we="WE1" } )
$local_Vertraege += ( @{ i=2; ag="AG2"; we="WE2" } )
$local_Vertraege += ( @{ i=3; ag="AG2"; we="WE3" } )
#global access is not working, throws exception, why?
$global:Vertraege += ( @{ i=4; ag="AG4"; we="WE4" } )
}
#/cut
与
$local_Vertraege
一起工作很好。
$local_Vertraege
填充了 3 个示例集
但是我需要访问$global:Vertraege
我怎样才能将数据集 4 放入全局哈希表中?
我收到这个错误(德语):
Der Zuweisungsausdruck ist ungültig. Die Eingabe für einen Zuweisungsoperator muss ein Objekt sein, das Zuweisungen akzeptieren kann (z. B. eine Variable oder Eigenschaft).
如何从函数内部访问/更改全局哈希表?
用于将数据写回全局
Vertraege
变量 的语法是正确的 - 您可以通过删除上面的失败代码来观察这一点:
PS ~> $global:Vertraege = @{}
PS ~> function xy { $global:Vertraege += ( @{ i=4; ag="AG4"; we="WE4" } ) }
PS ~> xy
PS ~> $Vertraege
Name Value
---- -----
we WE4
ag AG4
i 4