Process.Start() 从命令提示窗口获取错误

13

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

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

最好的祝福,loviji


1
完全含糊不清的问题。是什么类型的错误? - Nayan
2
这并不是一个含糊的问题。易于理解。 - cgalvao1993
3个回答

13

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

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

请注意,如果找不到文件,您将不会在标准错误上收到错误信息。相反,您将收到一个异常。


请注意,调用ReadToEnd可能永远不会终止。为避免死锁,请改用异步读取方法。请参见我的答案:https://dev59.com/bnVC5IYBdhLWcg3w9F89#7608823 - Mark Byers
我按照您的答案操作,但在错误信息中出现了以下内容(字符串变量): “casperjs”不是内部或外部命令,\r\n可执行程序或批处理文件。\r\n 如果有解决方案,请提供。 - Unknown_Coder

2

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接