[英]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.