Я пытаюсь создать программу, которая получает переменные из внешнего файла.Моя проблема заключается в том, что политика компании не позволяет пользователям запускать файлы ps1 (программа работает, потому что я компилирую ps1 в exe с помощью ps2exe), поэтому этот внешний файл должен быть в формате txt, csv или в другом текстовом формате.Я не хочу записывать эти переменные в исполняемый файл, потому что пользователям нужна некоторая гибкость в использовании значений, которые они используют.
Я попытался создать хеш-таблицу и получить переменные в нее с помощью ConvertFrom-StringData, но этопортит вывод.
file.txt
one = foo
two = bar
prog.ps1
$variable = Get-Content ".\file.txt" | Out-String | ConvertFrom-StringData
Write-Host $variable.one
Write-Host "$variable.two"
Последний отображается как: System.Collections.Hashtable.two вместозначения $ variable.two.Конечно, в этом упрощенном примере на самом деле не было необходимости в кавычках вокруг второй переменной, но эта программа нуждается в некоторых местах.
Когда я хранил переменные в правильном формате в файле ps1и внедрил его обычным
. .\file.ps1
способом, он работал как надо, но его не могут использовать пользователи, которым он нужен.
Буду признателен за любые идеи о том, какзаставить это работать.Я имею в виду, если это вообще возможно.