TLDR: Как мне импортировать эту хеш-таблицу для использования в приведенном ниже коде?
Я работаю над созданием написанного мной модульного сценария, чтобы я мог быстро менять переменные. В настоящее время скрипт ссылается на:
$MenuGroups = @{
"1. Internet & Network tools" = "Microsoft Edge", "Internet Explorer"
"2. Microsoft Office" = "Excel 2016","Outlook 2016","PowerPoint 2016","Publisher 2016","Word 2016"
"3. Text, file & programming tools" = "Calculator","Notepad++"
"4. Media tools" = "XBOX", "NONE"
"5. Scientific software" = "Calculator"
"6. Administrator" = "Control Panel"
"7. Other tools" = "Search Google", "Store locator"
}
Для использования следующим сегментом кода:
foreach ($MenuGroup in $MenuGroups.Keys | Sort-Object) {
# Init xml element for software group
$SoftwareGroupXml = $StartMenuXml.CreateElement("start","Group", "http://schemas.microsoft.com/Start/2014/StartLayout")
$SoftwareGroupXml.SetAttribute('Name',$MenuGroup.Substring(3))
# Init row and col
$col = 0
$row = 0
# Looping all software links in start menu
foreach ($Software in $MenuGroups[$MenuGroup]) {
# Check if it is time for a new col
if (($col%($NumCol-1) -eq 1) -and ($col -ne 1)) {
$row +=2
$col = 0
}
Я пытаюсь заменить хеш-таблицу $ MenuGroups файлом, который я могу заменить при необходимости. Я попытался поместить текст в текстовый файл и использовал следующий код: $MenuGroups = Get-content "C:\Menugroups.txt"
, но мой вывод пуст. Я попробовал это как CSV также, но это все еще пусто. Когда я запускаю get get для файлов CSV и TXT по отдельности, содержимое отображается в powershell. Я знаю, что мне не хватает чего-то маленького. Как мне правильно импортировать это из CSV, TXT или XML, чтобы соответствовать этому коду?
Однако меня немного смущает вопрос, почему я не могу просто использовать '$ MenuGroups = @ (Get-Content -Path C: \ MenuGroups.txt | Out-String) | ConvertFrom-StringData) и почему это не работает. Проблема в том, что я пытаюсь использовать существующий код с тем, что импортирую.
Я попытался экспортировать хеш-таблицу в JSON, а затем использовать ее с командой импорта. Когда я проверяю, есть ли данные, меня приветствуют мои данные, но когда я пытаюсь их использовать, мой сценарий возвращает пустые данные.
Любая помощь приветствуется! Если требуется дополнительная информация, пожалуйста, дайте мне знать, и я немедленно обновлю.