StandardError 显示但 StandardOutput 在 C# 中调用进程时不显示
StandardError shows but StandardOutput doesn't when calling a Process in C#
下面是对 Python 进程的调用,但它不会 return StandardOutput
。我故意在 Python 文件中打错了字,它成功地 return 编辑了 StandardError
。
string pythonExe = @"../../../Vokaturi/python.exe";
string pythonFile = @"../../../Vokaturi/test.py";
ProcessStartInfo myProcessStartInfo = new ProcessStartInfo(pythonExe);
myProcessStartInfo.UseShellExecute = false;
myProcessStartInfo.RedirectStandardOutput = true;
myProcessStartInfo.RedirectStandardError = true;
myProcessStartInfo.Arguments = pythonFile;
Process myProcess = new Process();
myProcess.StartInfo = myProcessStartInfo;
myProcess.Start();
StreamReader myStreamReaderError = myProcess.StandardError;
string myErrorString = myStreamReaderError.ReadToEnd();
StreamReader myStreamReaderOutput = myProcess.StandardError;
string myOutputString = myStreamReaderOutput.ReadToEnd();
myProcess.WaitForExit();
myProcess.Close();
这意味着我在路径中调用文件的方式是正确的。我还在命令提示符下尝试了它,它 returns 必要的输出没有错误。当我调试代码时,它说它抛出了一个 system.invalidoperationexception
类型的异常(在 myProcess.start()
之后)。
但它说 here 这是预期的。我错过了什么?预先感谢您的指导。
您正在阅读阅读器输出到
的标准错误
StreamReader myStreamReaderError = myProcess.StandardError;
string myErrorString = myStreamReaderError.ReadToEnd();
StreamReader myStreamReaderOutput = myProcess.StandardError;
string myOutputString = myStreamReaderOutput.ReadToEnd();
也改一下
StreamReader myStreamReaderError = myProcess.StandardError;
string myErrorString = myStreamReaderError.ReadToEnd();
StreamReader myStreamReaderOutput = myProcess.StandardOutput;
string myOutputString = myStreamReaderOutput.ReadToEnd();
下面是对 Python 进程的调用,但它不会 return StandardOutput
。我故意在 Python 文件中打错了字,它成功地 return 编辑了 StandardError
。
string pythonExe = @"../../../Vokaturi/python.exe";
string pythonFile = @"../../../Vokaturi/test.py";
ProcessStartInfo myProcessStartInfo = new ProcessStartInfo(pythonExe);
myProcessStartInfo.UseShellExecute = false;
myProcessStartInfo.RedirectStandardOutput = true;
myProcessStartInfo.RedirectStandardError = true;
myProcessStartInfo.Arguments = pythonFile;
Process myProcess = new Process();
myProcess.StartInfo = myProcessStartInfo;
myProcess.Start();
StreamReader myStreamReaderError = myProcess.StandardError;
string myErrorString = myStreamReaderError.ReadToEnd();
StreamReader myStreamReaderOutput = myProcess.StandardError;
string myOutputString = myStreamReaderOutput.ReadToEnd();
myProcess.WaitForExit();
myProcess.Close();
这意味着我在路径中调用文件的方式是正确的。我还在命令提示符下尝试了它,它 returns 必要的输出没有错误。当我调试代码时,它说它抛出了一个 system.invalidoperationexception
类型的异常(在 myProcess.start()
之后)。
但它说 here 这是预期的。我错过了什么?预先感谢您的指导。
您正在阅读阅读器输出到
的标准错误 StreamReader myStreamReaderError = myProcess.StandardError;
string myErrorString = myStreamReaderError.ReadToEnd();
StreamReader myStreamReaderOutput = myProcess.StandardError;
string myOutputString = myStreamReaderOutput.ReadToEnd();
也改一下
StreamReader myStreamReaderError = myProcess.StandardError;
string myErrorString = myStreamReaderError.ReadToEnd();
StreamReader myStreamReaderOutput = myProcess.StandardOutput;
string myOutputString = myStreamReaderOutput.ReadToEnd();