Подобные вопросы о STDOUT
(STandarOUTput
) были заданы ранее.Но в моем случае исключений нет, тем не менее, выходной результат - пустая строка.
Используя следующий код, я успешно могу выполнить EXE.Exe возвращает некоторые выходные данные в командном окне, которое я также вижу.Теперь я хочу прочитать этот вывод в строке.В приведенном ниже коде strOutput
является пустой строкой (хотя я вижу некоторые результаты в окне командной строки).
Вот мой код:
System.Diagnostics.Process myProcess = new System.Diagnostics.Process();
try
{
myProcess.StartInfo.Arguments = "";
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.FileName = @"D:\exeFilePath\exedrivermanager.exe";
myProcess.StartInfo.CreateNoWindow = true;
myProcess.StartInfo.RedirectStandardOutput = true;
myProcess.Start();
string strOutput = myProcess.StandardOutput.ReadToEnd(); //THIS RETURNS AN EMPTY STRING.
Console.WriteLine(Environment.NewLine + Environment.NewLine + "Output: " + strOutput);
//Wait for process to finish
myProcess.WaitForExit();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
РЕДАКТИРОВАТЬ:
Я понял, что невозможно записать вывод в файл, даже с командной строкой.Кажется, что вызываемая программа никогда не завершается полностью.Вызываемая программа покидает командную строку, как показано на снимке экрана ниже.
![enter image description here](https://i.stack.imgur.com/NxqQo.png)