Ist es möglich, eine Konfigurationsdatei mit einem PowerShell-Skript zu verwenden?
Zum Beispiel die Konfigurationsdatei:
#links
link1=http://www.google.com
link2=http://www.apple.com
link3=http://www.microsoft.com
Rufen Sie dann diese Informationen im PS1-Skript auf:
start-process iexplore.exe $Link1
powershell
scripting
Xavier C
quelle
quelle
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
Funktioniert dies bei jemandem ordnungsgemäß?[Sections]
oder haben; semicolon comments
, können Sie dies einfach tun$config = Get-Content $ConfigPath | ConvertFrom-StringData
. Weitere Informationen finden Sie unter ConvertFrom-StringData .Es gibt hier einen guten Thread , der diesen Code zeigt (aus dem verlinkten Thread zitierend):
Dann können Sie tun:
Angenommen, eine INI-Datei sieht folgendermaßen aus:
Leider fehlen die regulären Ausdrücke im Code des Links, sodass Sie sie reproduzieren müssen. Es gibt jedoch eine Version, die Dateien ohne Abschnittsüberschriften und Kommentarzeilen verarbeitet.
quelle
switch
with einen weiteren Fall hinzufügen'^#' {}
. Sie können auch mit einem Punkt auf Hashtable-Inhalte zugreifen, sodass auch diese$links.vendors.link1
funktionieren sollten, die möglicherweise etwas besser zu lesen sind.Ja, die Cmdlets, nach denen Sie suchen, sind get-content und select-string.
quelle
Ein umfassenderes Konzept finden Sie unter https://github.com/alekdavis/ConfigFile . Dieses Modul unterstützt Konfigurationsdateien im JSON-Format sowie INI. Es erlaubt das Erweitern von Variablen und macht ein paar nette Tricks. Beachten Sie, dass die Namen der Schlüssel-Wert-Paare in der INI-Datei mit den Namen der Skriptparameter oder -variablen übereinstimmen müssen.
quelle