C# 使用Powershell替换源代码管理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文件之类的脚本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
<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
}
}