目前希望使用PowerShell脚本替换XML文件的from,to和subject属性。
<configuration>
<configSections>
</configSections>
<elmah>
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="SqlServer" />
<errorMail from="test@test.org" to="test@test.co.uk" cc="" subject="Error email title"/>
<errorFilter>
<test>
</test>
</errorFilter>
</elmah>
我尝试了以下foreach循环,但这似乎没有更新属性:
$xmlDoc = [XML](Get-Content "$path\Web.config")
foreach ($item in $xmlDoc.configuration.elmah.errorMail){
{$item.from = 'test1@test1.org'}
{$item.to = 'test2@test2.org'}
{$item.subject = 'test3'}
}
$xmlDoc.Save("$path\Web.config")
任何人都对此脚本有所帮助吗?
答案 0 :(得分:1)
您将分配包装在scriptblock 中,这可能会引入新变量并防止更新xml中的属性。所以只需删除大括号:
$xmlDoc = [XML](Get-Content "$path\Web.config")
foreach ($item in $xmlDoc.configuration.elmah.errorMail)
{
$item.from = 'test1@test1.org'
$item.to = 'test2@test2.org'
$item.subject = 'test3'
}
$xmlDoc.Save("$path\Web.config")