2012-10-22 16 views
5

Avere la seguente app.config:Sostituire app.config valore del nodo elemento in PowerShell

<configuration> 
<appSettings> 
<add key="filepath" value="D:\Data" /> 
<add key="node2" value="..." /> 
... 
</appSettings> 
</configuration> 

voglio sostituire l'impostazione che ha chiave 'percorsofile' con un nuovo valore (sostituendo 'D: \ Data ..' in questo caso). Il nuovo valore deve essere passato come parametro allo script di PowerShell. Grazie

risposta

6

Aggiornamento sulla base del commento:

$xml = [xml]'<configuration> 
<appSettings> 
<add key="filepath" value="D:\Data" /> 
<add key="filename" value="test.log" /> 
</appSettings> 
</configuration>' 

$xml.configuration.appSettings.add | foreach { if ($_.key -eq 'filepath') { $_.value = "C:\Data" } } 
$xml.Save("C:\dell\NewApp.config") 

================================ ================================================== =========

risposta Old

$xml = [xml]'<configuration> 
<appSettings> 
<add key="filepath" value="D:\Data" /> 
</appSettings> 
</configuration>' 

$xml.configuration.appSettings.add.value = "C:\Data" 
$xml.Save("NewApp.config") 

o

$xml = [xml](Get-Content App.config) 
$xml.configuration.appSettings.add.value = "C:\Data" 
$xml.Save("NewApp.Config") 
+0

Ricevo il seguente errore: impossibile trovare "valore" di proprietà su questo oggetto; assicurati che esista e sia impostabile. Sembra che mi serva in qualche modo per dirgli di trovare il nodo 'filepath' di appSetting? –

+0

Bene, allora si vede che ci sono più di un nodo nella configurazione. Corretta? In tal caso, aggiorna la domanda con un campione che ha più nodi di aggiunta. – ravikanth

+0

La risposta aggiornata mi ha davvero risparmiato molte ore e la possibile ricreazione dell'intero progetto. Ma un errore (anche se non fermarmi comunque in questo momento) che sto ottenendo in questo momento è "Impossibile convertire il valore in" System.Xml.XmlDocument "" Apprezzo @ravikanth se puoi aiutarmi con questo. –

Problemi correlati