Создание многомерного массива хеш-таблиц в 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
Результат:
Фрэнк
Манфред