运行“;tf.exe状态“;并保存结果
本文关键字:保存 结果 exe tf 运行 状态 | 更新日期: 2023-09-27 18:00:09
我正试图在c#中创建一个小型控制台应用程序。我想运行该程序并将TFS中所有挂起的更改保存到.txt文件中。但我无法让这些论点发挥作用。有人能帮我吗?
这是我迄今为止完成的代码:
string argument = "@tf.exe status /collection:http://tiffany:8080/tfs/ /user:* /format:detailed >c:''Status''Detailed.txt";
try
{
Process process = new Process();
process.StartInfo.Arguments = "@call" + " " + "C:''Program Files (x86)''Microsoft Visual Studio 12.0''Common7''Tools''VsDevCmd.bat";
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.Verb = "runas";
process.StartInfo.Arguments = argument;
process.StartInfo.CreateNoWindow = false;
process.Start();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
Console.ReadKey();
}
a我真的不确定我是否确切地理解你想要调用的内容。假设您想从C#应用程序运行以下命令行,就好像您要从命令行调用它一样:
tf.exe status /collection:http://tiffany:8080/tfs/ /user:* /format:detailed >c:''Status''Detailed.txt"
我会使用这个代码:
string arguments = @"/C tf.exe status /collection:http://tiffany:8080/tfs/ /user:* /format:detailed >c:''Status''Detailed.txt";
this.process = new Process();
this.process.StartInfo.FileName = @"cmd.exe";
this.process.StartInfo.Arguments = arguments;
this.process.Start();
编辑:如果你的控制台应用程序就是这么做的,为什么不考虑创建一个批处理(.BAT/.CMD)文件而不是C#应用程序呢?
您可以利用TFS API,而不是运行命令行工具。
有很多文章,例如关于主题的代码项目文章
和
直接来自MSDN 的示例代码
我想您必须读取标准错误和启动过程的输出:
Process process = new Process();
process.StartInfo.Arguments = @"status PATH /recursive";
process.StartInfo.FileName = "tf.exe";
process.StartInfo.CreateNoWindow = false;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
var st = process.StandardOutput.ReadToEnd();
var err = process.StandardError.ReadToEnd();
但是解析tf输出并不容易,我建议使用TFS API作为@Mare所说的
您不需要在C#中创建应用程序来保存在文本文件中。只需在命令末尾使用参数(...) > [file name].txt
即可。
">"符号将任何命令的结果发送到文件。