2012-10-22 10 views
5

die folgenden app.config Mit:ersetzen App.Config Artikel Knotenwert in Power

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

Ich mag die Einstellung ersetzen, die ‚filepath‘ Schlüssel mit einem neuen Wert (durch ‚D ersetzt: \ Data ..' in diesem Fall). Der neue Wert sollte als Parameter an das Powershell-Skript übergeben werden. Dank

Antwort

6

-Update auf der Grundlage der Kommentar:

$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") 

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

OLD ANSWER

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

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

oder

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

Ich bekomme den folgenden Fehler: Eigenschaft 'Wert' kann nicht für dieses Objekt gefunden werden; stellen Sie sicher, dass es existiert und einstellbar ist. Sieht so aus, als müsste ich es irgendwie sagen, um den Dateipfad von appSetting zu finden? –

+0

Nun, dann sehen Sie mehr als eine Knoten in der Konfiguration. Richtig? Wenn ja, bitte aktualisieren Sie Ihre Frage mit einem Beispiel, das mehr Knoten hinzufügen. – ravikanth

+0

Die aktualisierte Antwort rettete mir wirklich viele Stunden und die mögliche Wiederherstellung des gesamten Projekts. Aber ein Fehler (obwohl mich in diesem Moment überhaupt nicht zu stoppen), der in diesem Moment ist, ist "Kann Wert nicht in Typ konvertieren" System.Xml.XmlDocument "" Schätzen @Ravikanth, wenn Sie mir dabei helfen können. –