Czy można użyć pliku konfiguracyjnego ze skryptem PowerShell?
Na przykład plik konfiguracyjny:
#links
link1=http://www.google.com
link2=http://www.apple.com
link3=http://www.microsoft.com
A następnie wywołaj tę informację w skrypcie PS1:
start-process iexplore.exe $Link1
powershell
scripting
Xavier C.
źródło
źródło
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
Czy ktoś działa poprawnie?[Sections]
lub; semicolon comments
możesz to zrobić$config = Get-Content $ConfigPath | ConvertFrom-StringData
. Aby uzyskać szczegółowe informacje, zobacz ConvertFrom-StringData .Jest tutaj dobry wątek , który pokazuje ten kod (cytowanie z połączonego wątku):
Następnie możesz zrobić:
Zakładając, że plik INI wygląda następująco:
Niestety, w kodzie linku brakuje wyrażeń regularnych, więc musisz je odtworzyć, ale istnieje wersja, która obsługuje pliki bez nagłówków sekcji i wierszy będących komentarzami.
źródło
switch
z'^#' {}
. Możesz również uzyskać dostęp do treści z hashowaniem za pomocą kropki, więc też$links.vendors.link1
powinna działać, co może być nieco lepiej czytać.tak, cmdlety, których szukasz, to get-content i select-string.
źródło
Aby uzyskać bardziej kompleksowe podejście, rozważ https://github.com/alekdavis/ConfigFile . Moduł obsługuje pliki konfiguracyjne w formacie JSON, a także INI. Pozwala rozszerzać zmienne i wykonuje kilka porządnych sztuczek. Należy pamiętać, że nazwy par klucz-wartość w pliku INI muszą być zgodne z nazwami parametrów lub zmiennych skryptu.
źródło