2015-01-08 10 views
0

У меня есть много строк подключения в файлах * .config на всех дисках C :. Я использую Windows 8, VS 2012, TFS 2008.Massive Заменить текст в файлах. Source Control TFS с использованием Powershell

У меня есть файлы * .config в Source Control TFS, с рабочей областью, отображаемой в локальной папке C: \ TFS.

У меня есть * .config файлы из Source Control TFS в других папках (C: \ Tests, C: \ Windows, C: \ Temp и т. Д.).

Я хочу заменить пароль во всех * .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, я хочу:

  • Удалить ReadOnly атрибут в файл, если файл имеет его
  • использование string.Replace и File.WriteAllText для смены пароля

Если * .config файл в TFS, я хочу:

  • получить последнюю версию файла
  • не проверить из файла
  • использования string.Replace и File.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 
    } 
}