如何在tfs中快速重命名文件夹?

时间:2015-01-12 07:13:45

标签: tfs tfs2012

我有大约200个文件夹,我必须重命名。每个文件夹包含多个子项,但我只想重命名父项。我知道不应该首先要求它,但不是我已经处于这种情况。一个接一个地重命名它们需要很长时间,我想以某种方式自动化它。是否可以这样做?

2 个答案:

答案 0 :(得分:0)

只需使用命令行tf.exe即可。只需200次重命名,你可以只调用tf.exe 200次" tf重命名为foo bar"然后检查所有更改。 您还可以探索powershell选项(有tfs cmdlet)。 最后但并非最不重要的是,您可以编写tfs脚本 - 每行都是新的tf.exe命令,但它们都共享服务器连接,因此速度更快: script1.tfs " 重命名foo1 bar1 重命名foo2 bar2

"你调用tf @ script1.tfs(@是至关重要的) 请记住创建首先覆盖所有文件夹的工作区,最简单的方法是从映射到其中的文件夹中调用tf.exe。 祝你好运!

答案 1 :(得分:0)

正如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);
            }
        }