Massive替换文件中的文本使用Powershell的源代码管理TFS
问题描述:
我在所有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.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
}
}