public static string ExecuteInCmd(string cmdline)
{
using (var process = new Process())
{
process.StartInfo.StandardOutputEncoding = Encoding.UTF8;
process.StartInfo.FileName = "C:\\Windows\\system32\\cmd.exe";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.CreateNoWindow = true;
process.Start();
//process.StandardInput.AutoFlush = true;
process.StandardInput.WriteLine(cmdline);
process.StandardInput.WriteLine("exit");
//获取cmd窗口的输出信息
string output = process.StandardOutput.ReadLine();
if (!process.StandardOutput.EndOfStream) {
output=output+ process.StandardOutput.ReadLine()+"\n";
}
process.WaitForExit();
process.Close();
return output;
}
}
我是在unity上面运行的,我可以输入指令,例如 javac hello.java都能编译,但是假如需要读取输出,就会出现这种乱码结果,另外结果也读取不出来