C# 使用Powershell替换源代码管理TFS中的大量文本

C# 使用Powershell替换源代码管理TFS中的大量文本,c#,powershell,replace,tfs,C#,Powershell,Replace,Tfs,我在所有C:drive中的*.config文件中都有许多连接字符串。我使用Windows 8,VS 2012,TFS 2008 我在源代码管理TFS中有一些*.config文件,工作区映射在本地文件夹C:\TFS中 我在源代码管理TFS的另一个文件夹C:\Tests、C:\Windows、C:\Temp等中有一些*.config文件 我想替换所有*.config文件中的密码 最好使用Powershell或bat/cmd文件之类的脚本 <add name="ConnectionString

我在所有C:drive中的*.config文件中都有许多连接字符串。我使用Windows 8,VS 2012,TFS 2008

我在源代码管理TFS中有一些*.config文件,工作区映射在本地文件夹C:\TFS中

我在源代码管理TFS的另一个文件夹C:\Tests、C:\Windows、C:\Temp等中有一些*.config文件

我想替换所有*.config文件中的密码

最好使用Powershell或bat/cmd文件之类的脚本

 <add name="ConnectionStrings.Oracle.ConnectionLog" connectionString="DATA SOURCE=xxx;PASSWORD=AAAAAAA;PERSIST SECURITY INFO=True;USER ID=MYUSER"
  providerName="Oracle.DataAccess.Client" />
如果*.config文件不在TFS中,我希望:

如果文件中包含只读属性,请删除该属性 使用string.Replace和File.WriteAllText更改密码 如果*.config文件位于TFS中,我希望:

获取文件的最新版本 请不要签出文件 使用string.Replace和File.WriteAllText更改密码 是否签入文件 如何知道配置文件是否在源代码管理TFS中?
关于这个过程有什么建议吗?

这将循环特定分支中的所有文件并输出名称。这将为您提供TFS中的配置文件列表

$serverBranchLocation = "$/Project/Branch" 
$tfs=Get-TfsServer -name http://tfs:8080/tfs

foreach ($item in Get-TfsChildItem $serverBranchLocation -recurse -server $tfs)  { 
    if ($item -match "*.config") {
        echo $item
    } 
}
$serverBranchLocation = "$/Project/Branch" 
$tfs=Get-TfsServer -name http://tfs:8080/tfs

foreach ($item in Get-TfsChildItem $serverBranchLocation -recurse -server $tfs)  { 
    if ($item -match "*.config") {
        echo $item
    } 
}