如何快速重命名 tfs 中的文件夹?
How can I quickly rename folders in tfs?
我有大约 200 个文件夹需要重命名。每个文件夹包含多个子文件夹,但我只想重命名父文件夹。我知道一开始就不应该要求它,但我已经处于这种情况了。一个一个地重命名它们会花费很长时间,我想以某种方式将其自动化。可以这样做吗?
只需使用命令行 tf.exe。对于仅 200 次重命名,您只需调用 tf.exe 200 次 "tf rename foo bar",然后检查所有更改。
您还可以探索 powershell 选项(有 tfs cmdlet)。
最后但同样重要的是,您可以编写 tfs 脚本——每一行都是新的 tf.exe 命令,但它们都共享服务器连接,因此速度更快:
script1.tfs
“
重命名 foo1 bar1
重命名 foo2 bar2
" 然后调用 tf @script1.tfs (@ 很重要)
请记住首先创建覆盖所有文件夹的工作区,最简单的方法是从其中映射的文件夹调用 tf.exe。
祝你好运!
根据 MicahalMa 的建议,我使用了类似的方法并使用 c# 在循环中调用重命名。这是我不太优雅的代码。
private static void RenameDirectories()
{
string path = @"E:\Local\Development\"; //Path for parent directory
List<string> directoriesToRename = new List<string>();
string[] directories = Directory.GetDirectories(path, "*", SearchOption.TopDirectoryOnly);
string tfsTool = @"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\TF.exe";
string command = "rename";
var p = new Process();
int i = 0;
foreach (string s in directories)
{
i++;
string param = command + " " + path + "\" + s + " " + path + "\" + s.Remove(s.Length - 1);
Console.WriteLine("Running " + i + " of" + directoriesToRename.Count());
Console.WriteLine("Renaming started for " + s);
p.StartInfo = new ProcessStartInfo(tfsTool, param)
{
UseShellExecute = false
};
p.Start();
p.WaitForExit();
Console.WriteLine("Renaming Complete for " + s);
Console.WriteLine("-----------------------------------------------------------");
File.AppendAllText(@"c:\log.txt", s + Environment.NewLine);
}
}
我有大约 200 个文件夹需要重命名。每个文件夹包含多个子文件夹,但我只想重命名父文件夹。我知道一开始就不应该要求它,但我已经处于这种情况了。一个一个地重命名它们会花费很长时间,我想以某种方式将其自动化。可以这样做吗?
只需使用命令行 tf.exe。对于仅 200 次重命名,您只需调用 tf.exe 200 次 "tf rename foo bar",然后检查所有更改。 您还可以探索 powershell 选项(有 tfs cmdlet)。 最后但同样重要的是,您可以编写 tfs 脚本——每一行都是新的 tf.exe 命令,但它们都共享服务器连接,因此速度更快: script1.tfs “ 重命名 foo1 bar1 重命名 foo2 bar2
" 然后调用 tf @script1.tfs (@ 很重要) 请记住首先创建覆盖所有文件夹的工作区,最简单的方法是从其中映射的文件夹调用 tf.exe。 祝你好运!
根据 MicahalMa 的建议,我使用了类似的方法并使用 c# 在循环中调用重命名。这是我不太优雅的代码。
private static void RenameDirectories()
{
string path = @"E:\Local\Development\"; //Path for parent directory
List<string> directoriesToRename = new List<string>();
string[] directories = Directory.GetDirectories(path, "*", SearchOption.TopDirectoryOnly);
string tfsTool = @"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\TF.exe";
string command = "rename";
var p = new Process();
int i = 0;
foreach (string s in directories)
{
i++;
string param = command + " " + path + "\" + s + " " + path + "\" + s.Remove(s.Length - 1);
Console.WriteLine("Running " + i + " of" + directoriesToRename.Count());
Console.WriteLine("Renaming started for " + s);
p.StartInfo = new ProcessStartInfo(tfsTool, param)
{
UseShellExecute = false
};
p.Start();
p.WaitForExit();
Console.WriteLine("Renaming Complete for " + s);
Console.WriteLine("-----------------------------------------------------------");
File.AppendAllText(@"c:\log.txt", s + Environment.NewLine);
}
}