【发布时间】:2020-10-21 12:10:34
【问题描述】:
我从我的 C# 应用程序执行命令。
它运行良好,但有时我会出错。
我的问题是我看不到命令窗口中的错误或任何其他文本。
它只是空白。
有什么方法可以让文本在执行时间显示与此处显示的相同?
这是我的代码:
var processInfo = new ProcessStartInfo("cmd.exe", "/c " + command);
//processInfo.CreateNoWindow = true;
processInfo.UseShellExecute = false;
processInfo.RedirectStandardError = true;
processInfo.RedirectStandardOutput = true;
processInfo.WorkingDirectory = workingFolder;
var process = Process.Start(processInfo);
process.OutputDataReceived += (object sender, DataReceivedEventArgs e) =>
Console.WriteLine("output>>" + e.Data);//MessageBox.Show(e.Data);
process.BeginOutputReadLine();
process.ErrorDataReceived += (object sender, DataReceivedEventArgs e) =>
Console.WriteLine("error>>" + e.Data);//MessageBox.Show(e.Data);
process.BeginErrorReadLine();
process.WaitForExit();
Console.WriteLine("ExitCode: {0}", process.ExitCode);
process.Close();
【问题讨论】:
-
您的代码无法读取StandardOutput 或StandardError 流
-
您也不需要使用
cmd.exe来运行进程。只需将路径传递给可执行文件并将参数传递给ProcessStartInfo构造函数
标签: c# command console-application command-window