2015-01-08 44 views
0

我在所有C:驱动器的* .config文件中都有很多连接字符串。我使用Windows 8,VS 2012,TFS 2008.Massive替换文件中的文本使用Powershell的源代码管理TFS

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

我有一些* .config文件出来源控制TFS,在另一个文件夹(C:\测试,C:\ Windows中,C:\温度等)。

我想要替换所有* .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" /> 

我用

var configs = Directory.GetFiles(@"C:\", "*.config"); 

configs.ForEach(f => ReplacePasswordOfFile(f)); 

如果* config文件是TFS出来,我想:

  • 在文件中删除只读属性,如果该文件有它
  • 使用string.ReplaceFile.WriteAllText更改密码

如果* config文件是TFS,我想:

  • 获得最新版本的文件
  • 的做检查了所有的文件
  • 使用 string.ReplaceFile.WriteAllText更改口令的
  • 做检查的文件

如何知道配置文件是否在源代码管理TFS中? 关于这个过程的任何建议?

回答

0

这将遍历特定分支中的所有文件并输出名称。这会给你一个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 
    } 
} 
相关问题