【问题标题】:Get CMD output in C#在 C# 中获取 CMD 输出
【发布时间】:2013-11-17 16:59:50
【问题描述】:

我正在使用一个语法检查程序,它在 CMD 中是这样调用的:

"C:\Program Files (x86)\BoLPad\SyntaxCheck\\luac5.1.exe" C:\Users\Andi-PC\Desktop\test\syntax.lua

-> 所以我调用程序并将要检查的文件作为参数。 现在我正在尝试将检查结果(即 CMD 中的输出)发送到我的 C# 应用程序。

我想知道这是否可能,我尝试了很多,甚至使用 >command.txt 将文件从 CMD 中取出,但其中没有任何内容。所以我要么需要 CMD 文本的工作输出,要么获取 CMD 文本......有什么想法吗?

【问题讨论】:

标签: c# cmd output


【解决方案1】:

您可以使用一个进程并像这样重定向输出流来做到这一点:

ProcessStartInfo psi = new ProcessStartInfo(@"C:\Program Files (x86)\BoLPad\SyntaxCheck\luac5.1.exe", @"C:\Users\Andi-PC\Desktop\test\syntax.lua");
psi.UseShellExecute = false;
psi.RedirectStandardOutput = true;
Process process = Process.Start(psi);
string output = process.StandardOutput.ReadToEnd();
process.WaitForExit();

【讨论】:

  • 根本不给我任何输出,之前有这个问题......在CMD窗口中它显示了我想要获取的文本。
  • @user3002079 再次检查代码,我更新了它以修复错误。如果这仍然不起作用,请尝试从错误流而不是输出流中读取,我已经看到一些命令行应用程序出于某种原因这样做。
  • 哇!谢谢,真的!重定向 ErrorOutput 是正确的做法;)我尝试了很多来获取文本,但仍然没有得到它可能与通常的输出不同。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多