如何快速重命名 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);
            }
        }