从 Powershell 中的函数访问 Global::Hashtable

问题描述 投票:0回答:1

我写 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).

如何从函数内部访问/更改全局哈希表?

powershell function hash global
1个回答
0
投票

用于将数据写回全局

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
© www.soinside.com 2019 - 2024. All rights reserved.