2015-01-08 69 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 
    } 
} 
相關問題