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

时间:2017-08-17 19:28:32

标签: arrays powershell multidimensional-array hashtable

我想知道是否有更短的方法在PowerShell中创建多维数据哈希表数组。我已经能够用几行来成功创建它们。

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

那就是说我想知道是否有办法将此缩短为这样......

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

如果它尚未存在,它将创建一个新的水平。谢谢!

2 个答案:

答案 0 :(得分:9)

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

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

答案 1 :(得分:0)

在@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

结果:

坦率

曼弗雷德