Xml 如何使用powershell更改app.config文件中nlog的值

Xml 如何使用powershell更改app.config文件中nlog的值,xml,powershell,Xml,Powershell,我真的很难让它工作。我可以使用powershell更新应用程序设置,但在目标节点中有一行需要修改。这是我的xml的一部分 <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" /> </startup> <entityFramework> <defaultConnectionFactory type="System.Data.En

我真的很难让它工作。我可以使用powershell更新应用程序设置,但在目标节点中有一行需要修改。这是我的xml的一部分

  <startup>
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />
 </startup>
 <entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory,  
 EntityFramework" />
<providers>
  <provider invariantName="System.Data.SqlClient"   
  type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
  </entityFramework>
  <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"    
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" throwExceptions="true">
  <targets>
  <target name="f1" xsi:type="File" fileName="test.log.txt" layout="${threadname} 
  ${longdate} ${callsite} ${logger}[${level}] ${message}" />
  <target name="console" xsi:type="Console" layout="${threadname} ${longdate} ${callsite}   
  ${logger}[${level}] ${message}" />
   </targets>
  <rules>
  <!--<logger name="Quartz.*" level="Warn" />-->
  <logger name="*" writeTo="f1" minlevel="Info" />
  <logger name="*" writeTo="console" minlevel="Debug" />
  </rules>
  </nlog>

在这一点上做了很多努力

您可以执行以下操作:

$xml = [xml](gc $webConfig)
$t = $xml.getElementsByTagName("targets")
$t.target | % { if ($_.fileName -eq 'test.log.txt') {$_.setAttribute('fileName','c:\project\logs\test.log.txt')} }
$xml.outerXml | Out-File $webConfig

选择所需节点的方式稍有不同,但应该按照您的要求进行操作。

我已尝试使用此节点及其工作$appSetting=$webConfigXml.configuration.appSettings.add |其中{$\ Key-eq'user.name'}更改应用程序设置$APPSETING.value='testeUser'但我试图更改的值不在应用程序设置下我刚刚用应用程序设置更新了我的问题,该设置适用于meIs的
节点a根元素?如果没有,则包括完整树的表示。
$xml = [xml](gc $webConfig)
$t = $xml.getElementsByTagName("targets")
$t.target | % { if ($_.fileName -eq 'test.log.txt') {$_.setAttribute('fileName','c:\project\logs\test.log.txt')} }
$xml.outerXml | Out-File $webConfig