【问题标题】:Process.Start() get errors from command prompt windowProcess.Start() 从命令提示符窗口获取错误
【发布时间】:2011-02-12 03:28:38
【问题描述】:

我正在尝试使用 args 启动命令提示符进程。现在我想获取有关错误的信息(如果存在)。

someProcess = System.Diagnostics.Process.Start(cmd, someArgs);

最好的问候,洛维吉

【问题讨论】:

  • 完全模糊的问题。什么样的错误?
  • 这根本不是一个模糊的问题。可以理解。

标签: c# process command-prompt


【解决方案1】:

其他答案都是正确的。下面是一些你可以使用的代码:

ProcessStartInfo startInfo = new ProcessStartInfo(cmd, args);
startInfo.UseShellExecute = false;
startInfo.RedirectStandardError = true;
Process someProcess = Process.Start(startInfo);
string errors = someProcess.StandardError.ReadToEnd();

请注意,如果找不到文件,您将不会收到标准错误错误。你会得到一个例外。

【讨论】:

  • 请注意,对 ReadToEnd 的调用可能永远不会终止。为避免死锁,请改用异步读取方法。在这里查看我的答案:stackoverflow.com/questions/139593/…
  • 我关注你的回答。并在错误中出现此错误(字符串 var。)“casperjs”不被识别为内部或外部命令,\r\n 可运行程序或批处理文件。\r\n 如果存在,请提供任何解决方案
【解决方案2】:

您可能正在寻找StandardError property

【讨论】:

    【解决方案3】:

    Process.StandardError Property:

    获取用于读取应用程序错误输出的流。

    这应该做你想做的。

    注意

    要使用 StandardError,您必须将 ProcessStartInfo.UseShellExecute 设置为 false,并且必须将 ProcessStartInfo.RedirectStandardError 设置为 true。否则,从 StandardError 流中读取会引发异常。

    【讨论】:

      猜你喜欢
      • 2012-07-21
      • 1970-01-01
      • 2019-08-11
      • 1970-01-01
      • 1970-01-01
      • 2014-09-09
      • 2020-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多