É possível usar um arquivo de configuração com um script do PowerShell?
Por exemplo, o arquivo de configuração:
#links
link1=http://www.google.com
link2=http://www.apple.com
link3=http://www.microsoft.com
E, em seguida, chame essas informações no script PS1:
start-process iexplore.exe $Link1
powershell
scripting
Xavier C
fonte
fonte
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
Alguém está funcionando corretamente?[Sections]
ou; semicolon comments
, você pode fazer exatamente$config = Get-Content $ConfigPath | ConvertFrom-StringData
. Consulte ConvertFrom-StringData para obter detalhes.Há um bom thread aqui que mostra esse código (citando o thread vinculado):
Então você pode fazer:
Supondo um arquivo INI parecido com este:
Infelizmente, as regexes estão ausentes no código no link, então você terá que reproduzi-las, mas há uma versão que manipula arquivos sem cabeçalhos de seção e linhas que são comentários.
fonte
switch
com'^#' {}
. Além disso, você também pode acessar o conteúdo da hashtable com um ponto; portanto,$links.vendors.link1
deve funcionar também, o que pode ser um pouco melhor para ler.sim, os cmdlets que você procura são get-content e select-string.
fonte
Para uma abordagem mais abrangente, considere https://github.com/alekdavis/ConfigFile . Este módulo suporta arquivos de configuração no formato JSON, bem como INI. Ele permite expandir variáveis e faz alguns truques legais. É importante lembrar que os nomes dos pares de valores-chave no arquivo INI devem corresponder aos nomes dos parâmetros ou variáveis do script.
fonte