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