¿Es posible usar un archivo de configuración con un script de PowerShell?
Por ejemplo, el archivo de configuración:
#links
link1=http://www.google.com
link2=http://www.apple.com
link3=http://www.microsoft.com
Y luego llame a esta información en el script de PS1:
start-process iexplore.exe $Link1
powershell
scripting
Xavier C
fuente
fuente
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
¿Alguien tiene esto funcionando correctamente?[Sections]
o; semicolon comments
, puede hacerlo solo$config = Get-Content $ConfigPath | ConvertFrom-StringData
. Vea ConvertFrom-StringData para más detalles.Hay un buen hilo aquí que muestra el código (citando el hilo unido):
Entonces puedes hacer:
Suponiendo un archivo INI que se ve así:
Desafortunadamente, faltan expresiones regulares en el código en el enlace, por lo que tendrá que reproducirlas, pero hay una versión que maneja archivos sin encabezados de sección y líneas que son comentarios.
fuente
switch
con'^#' {}
. También puede acceder a contenido de tabla hash con un punto, por lo$links.vendors.link1
que también debería funcionar , lo que podría ser un poco mejor para leer.Sí, los cmdlets que está buscando son get-content y select-string.
fuente
Para un enfoque más completo, considere https://github.com/alekdavis/ConfigFile . Este módulo admite archivos de configuración en formato JSON, así como INI. Permite expandir variables y hace algunos trucos geniales. Lo que debe recordar es que los nombres de los pares clave-valor en el archivo INI deben coincidir con los nombres de los parámetros o variables del script.
fuente