在Powershell中创建一个多维哈希表数组

8

我想知道在PowerShell中是否有更短的方法来创建一个多维哈希表数组。我已经成功地用以下几行代码创建了它们。

$arr = @{}
$arr["David"] = @{}
$arr["David"]["TSHIRTS"] = @{}
$arr["David"]["TSHIRTS"]["SIZE"] = "M"

我想知道是否有办法将这段内容缩短为以下形式...
$new_arr["Level1"]["Level2"]["Level3"] = "Test" 

如果该层级不存在,则创建一个新的层级。谢谢!


1
你正在寻找自动存活,不过,PowerShell没有这个功能。 - Mathias R. Jessen
2个回答

11
您需要为子级命名/定义名称,否则解释器无法知道它正在处理哪种类型(数组、单个节点、对象等)。

您需要为子级命名/定义名称,否则解释器无法知道它正在处理哪种类型(数组、单个节点、对象等)。

$arr = @{
    David = @{
        TSHIRTS = @{
            SIZE = 'M'
        }
    }
}

2

在@Maximilian的回答中,以下是一个更完整的示例,说明如何使用多维哈希表:

$acls = @{
Ordner1 = @{
    lesen     = 'torsten', 'timo';
    schreiben = 'Matthias', 'Hubert'
};
Ordner2 = @{
    schreiben = 'Frank', 'Manfred'; 
    lesen = 'Tim', 'Tom' }

}

添加数据:

$acls.Ordner3=@{}
$acls.Ordner3.lesen='read'
$acls.Ordner3.schreiben='write','full'

访问:

$acls.Ordner2.schreiben

Result:

Frank

Manfred


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接