Создание многомерного массива хеш-таблиц в Powershell

Мне было интересно, есть ли более короткий способ создания многомерного массива хеш-таблиц в powershell. Мне удалось успешно создать их с помощью пары строк, как это.

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

Тем не менее, мне было интересно, есть ли способ сократить это до чего-то вроде этого...

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

Где это создаст новый уровень, если он еще не существует. Спасибо!

1 ответ

Вам нужно назвать / определить подуровни, иначе интерпретатор не знает, с каким типом он работает (массив, отдельный узел, объект и т. Д.)

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

Добавление к ответу @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

Результат:

Фрэнк

Манфред

Другие вопросы по тегам