使用PowerShell脚本更新多个配置文件

时间:2016-12-29 15:17:44

标签: powershell

任务是使用power-shell脚本更新web.config和app.config中的应用程序设置。经过一些搜索后,我发现了一些脚本来更新单个文件而不是多个文件。有人可以帮忙吗?

$Config = C:\inetpub\wwwroot\TestService\Web.config
$doc = (Get-Content $Config) -as [Xml]
$obj = $doc.configuration.appSettings.add | where {$_.Key -eq 'SCVMMServerName'}
$obj.value = CPVMM02
$doc.Save($Config)

2 个答案:

答案 0 :(得分:0)

我可以给你一个合乎逻辑的衬托。您可以使用 select-string 中的 -match 获取要更新的那一行,然后类似地,您可以使用选择文件中已有的剩余内容-notmatch 即可。 把它们放在变量中。更新该行,将其存储回变量中。

然后使用 set-content

将两者(修改后的行变量和未修改的剩余值)设置回文件

希望你得到一个关于如何处理的启示

答案 1 :(得分:0)

有很多方法可以做到这一点,例如:

"C:\inetpub\wwwroot\TestService\Web.config",
"C:\inetpub\wwwroot\TestService\App.config" |
    ForEach-Object {
        $doc = (Get-Content $_) -as [Xml]
        $obj = $doc.configuration.appSettings.add |
            Where-Object { $_.Key -eq 'SCVMMServerName' }
        $obj.value = CPVMM02
        $doc.Save($_)
    }