Per un'alternativa alla configurazione XML, se siete flessibili di utilizzare altro tipo di configurazione. Suggerisco di utilizzare un file di configurazione PS globale ed ecco come:
Creare un file di configurazione di Powershell (ad esempio Config.ps1), quindi inserire tutta la configurazione come variabile globale e iniziarla come primo passaggio in modo che i valori di configurazione siano disponibili nel contesto di script.
Il vantaggio di questo approccio è che i vari tipi di strutture di dati come la variabile scalare, le raccolte e gli hash possono essere utilizzati nel file PS Config.ps1 e riportati facilmente nel codice PS.
il seguente è un esempio in azione:
Ecco la C: Config \ Config.ps1 file \:
$global:config = @{
Var1 = "Value1"
varCollection = @{
item0 = "colValue0"
item1 = "colValue1"
item2 = "colValue2"
}
}
quindi caricare il funzioni/variabili da Config. file di PS1 in questo modulo C: \ Module \ PSModule.psm1, in questo modo:
$scriptFiles = Get-ChildItem "$PSScriptRoot\Config\*.ps1" -Recurse
foreach ($script in $scriptFiles)
{
try
{
. $script.FullName
}
catch [System.Exception]
{
throw
}
}
La lo script di inizializzazione contiene questa riga seguente: (C: \ Init.ps1).
Import-Module $PSScriptRoot\Module\PSModule.psm1 -Force
Dopo l'esecuzione di Init.ps1. globale: la variabile config sarà disponibile nel contesto dello script. Ecco l'output:
Ho trovato questo sul web, che sembra ragionevole per me: http://www.bjd145.org/2008/01/powershell-and-xml-configuration-files.html – pencilCake
Oppure questo: http://rkeithhill.wordpress.com/2006/06/01/creating-and-using-a-configuration-file-for-your-powershell-scripts/ – pencilCake
Ho usato la soluzione di Keith prima , funziona a meraviglia. – nimizen