簡體   English   中英

Process.Start-在TFS命令行的參數中苦苦掙扎

[英]Process.Start - struggling with arguments to TFS command line

我正在嘗試通過Process.Start執行TFS,但是遇到了一些困難,我不明白為什么。 這是我的代碼段:

        /// <summary>
        /// Get the entire history for a project
        /// </summary>
        public void GetHistory(String project)
        {
            ProcessStartInfo info = new ProcessStartInfo();
            String fileName = Path.GetTempFileName();
            info.Arguments = String.Format("history \"{0}\" /recursive /format:Detailed /noprompt > {1}", "c:\\source\\ " + project, fileName);
            info.FileName = "\"C:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\Common7\\IDE\\tf.exe\"";
            info.RedirectStandardError = true;
            info.UseShellExecute = false;

            Process process = new Process();
            process.StartInfo = info;
            process.Start();

            process.WaitForExit();

            Console.WriteLine(process.StandardError.ReadToEnd());

            Console.WriteLine("History written to " + fileName);
            Console.ReadKey();
        }

這導致了一組類似這樣的參數(我剛剛刪除了完整的項目名稱):

在此處輸入圖片說明

然后,我得到以下錯誤:

history命令僅使用一項。

如果我將字符串拼湊在一起並在普通命令行中執行,那么它將起作用:

在此處輸入圖片說明

誰能告訴我我所缺少的嗎?

您不能在Process.Start參數中將輸出重定向到文件。 文件重定向是Shell的功能。

如果你想要把歷史划分為一個文件,你需要File.Open自己的文件,讀取輸出tf history命令,並將其寫入文件。

或者,您可以使用命令腳本或PowerShell腳本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM