Можно ли использовать файл конфигурации со скриптом PowerShell?
Например, файл конфигурации:
#links
link1=http://www.google.com
link2=http://www.apple.com
link3=http://www.microsoft.com
А затем вызвать эту информацию в сценарии PS1:
start-process iexplore.exe $Link1
powershell
scripting
Ксавье С
источник
источник
Index was outside the bounds of the array. At C:\testConfigreader.ps1:13 char:264 + ... -ne $True)) { $h.Add($k[0], $k[1]) } } + ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (:) [], IndexOutOfRangeException + FullyQualifiedErrorId : System.IndexOutOfRangeException
У кого-нибудь это работает правильно?[Sections]
или; semicolon comments
, вы можете сделать просто$config = Get-Content $ConfigPath | ConvertFrom-StringData
. См. ConvertFrom-StringData для деталей.Там хороший поток здесь , который показывает этот код (цитата из связанного потока):
Тогда вы можете сделать:
Предполагая, что INI-файл выглядит следующим образом:
К сожалению, в коде по ссылке отсутствуют регулярные выражения, поэтому вам придется их воспроизводить, но есть версия, которая обрабатывает файлы без заголовков разделов и строк, являющихся комментариями.
источник
switch
with'^#' {}
. Также вы можете получить доступ к содержимому хеш-таблицы с точкой, так что$links.vendors.link1
должно работать, что может быть немного лучше читать.да, вы ищете командлеты get-content и select-string.
источник
Для более комплексного подхода рассмотрите https://github.com/alekdavis/ConfigFile . Этот модуль поддерживает файлы конфигурации в формате JSON, а также INI. Это позволяет расширять переменные и делает несколько изящных трюков. Следует помнить, что имена пар ключ-значение в INI-файле должны совпадать с именами параметров или переменных скрипта.
источник