2

以下は、ソース/宛先XML(Web.Config)ファイルの内容です。このファイルでは、属性の値を置き換える必要があります。これはいくつかの構成ファイルに対して行う必要があるため、PowerShellを使用してこれを行うにはあなたの助けが必要です。私はstackOverFlowで利用可能な文字列を置き換えるためのコードを試しましたが、dintはそれを作ります。

<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->

<configuration>
<connectionStrings>

<add name="PrcEntities"
   providerName="System.Data.SqlClient"
   connectionString="Server=DDD05DB01,63518;Database=BBBDB001;Trusted_Connection=true;multipleactiveresultsets=true;Pooling=false"/>

<add name="CoreItemContext"
 providerName="System.Data.SqlClient"
 connectionString="Server=DDD15DB03,63520;Database=BBBDB002;Trusted_Connection=true;multipleactiveresultsets=true;Pooling=true"/>

</connectionStrings>
..

..

....

</configuration>

これは、上記のXMLファイルから「ConnectionString」という名前の属性をクエリするためのPowerShellコードです。

$Path = "C:\Ps\Web.config" 
$con="connectionString"   
[xml]$Types = Get-Content $Path 
Select-Xml -Xml $Types -XPath "//add" | Select-Object -ExpandProperty Node|Select-Object name,$con | Format-List 

結果は次のようになります:

名前:PrcEntities connectionString:Server = DDD05DB01,63518; Database = BBBDB001; Trusted_Connection = true; multiactiveresultsets = true; Pooling = false

名前:CoreItemContext connectionString:Server = DDD15DB03,63520; Database = BBBDB002; Trusted_Connection = true; multiactiveresultsets = true; Pooling = true

ここで、属性' connectionString 'の値を次のような詳細に置き換えます。Server=DBD05DB01,63518; Database = DDBDB001; Trusted_Connection = true; multipleactiveresultsets = true; Pooling = false両方の場所(PrcEntities&CoreItemContext)

この変更は、同じソースファイルに保存する必要があります。これで私を助けてください!

4

1 に答える 1

5
$path = "D:\Web.Config"
[xml]$xml = Get-Content $path 

$xml.configuration.connectionStrings.add | Foreach-Object {
    $_.connectionString = 'Server=DBD05DB01,63518;Database=DDBDB001;Trusted_Connection=true;multipleactiveresultsets=true;Pooling=false'
}

$xml.Save($path)
于 2012-12-31T13:04:52.383 に答える