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

Posted

技术标签:

【中文标题】在 Powershell 中创建多维哈希表数组【英文标题】:Create a Multidimensional Hash Table Array in Powershell 【发布时间】:2018-01-26 08:46:46 【问题描述】:

我想知道是否有更短的方法可以在 powershell 中创建多维哈希表数组。我已经能够用这样的几行成功地创建它们。

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

也就是说我想知道是否有任何方法可以将其缩短为这样的......

$new_arr["Level1"]["Level2"]["Level3"] = "Test" 

如果它尚不存在,它将在哪里创建一个新关卡。谢谢!

【问题讨论】:

你在 autovivification 之后,不,PowerShell 没有它。 【参考方案1】:

在此处添加@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

结果:

弗兰克

曼弗雷德

【讨论】:

【参考方案2】:

您需要命名/定义子级别,否则解释器不知道它正在使用哪种类型(数组、单节点、对象等)

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

【讨论】:

以上是关于在 Powershell 中创建多维哈希表数组的主要内容,如果未能解决你的问题,请参考以下文章

如何在html表中创建多维数组

powershell 使用PowerShell在SDL Web中创建管理员用户。使用Tridion CoreService模块(https://github.com/pkjaer/tridion-po

powershell 使用PowerShell在SDL Web中创建管理员用户。使用Tridion CoreService模块(https://github.com/pkjaer/tridion-po

什么是哈希表以及如何在 C 中创建它? [关闭]

如何在 Javascript 中创建多维数组? [复制]

如何在 Collection anylogic 中创建多维数组?