Неправильный вывод внешнего пакетного сценария C#

StackOverflow https://stackoverflow.com/questions/1746137

  •  20-09-2019
  •  | 
  •  

Вопрос

Мне нужна программа, которая выдает вывод пакетного скрипта, а на данный момент она просто печатает

System.IO.StreamReader

и он должен печатать все, что говорит пакетный скрипт

Это только та часть, которая связана с запуском нового процесса, объявляются переменные, такие как путь к файлу, и сам скрипт запускается, но не отображает правильный вывод.

Process Uninstaller = new Process();

Uninstaller.StartInfo.FileName = Path.Combine(uninstalldirectory, BatchProcessFileName);
Uninstaller.StartInfo.UseShellExecute = false;
Uninstaller.StartInfo.CreateNoWindow = true;
Uninstaller.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
Uninstaller.StartInfo.RedirectStandardOutput = true;
Uninstaller.Start();
StreamReader ReadUninstallerOutput = Uninstaller.StandardOutput;
Uninstaller.Close();
string OutputEnd = ReadUninstallerOutput.ReadToEnd();
Console.WriteLine(ReadUninstallerOutput);

ReadUninstallerOutput.Close();
Console.WriteLine("Uninstallation Successful");
Это было полезно?

Решение

Заменять

Console.WriteLine(ReadUninstallerOutput);

с

Console.WriteLine(OutputEnd);

Другие советы

Это потому, что у вас есть консоль записи ReadUninstallerOutput, который является объектом, а не строкой, содержащей нужные вам данные, и все, что делает метод, — это вызывает ToString метод для этого типа.Судя по вашему коду, вы хотели бы заменить:

Console.WriteLine(ReadUninstallerOutput);

с:

Console.WriteLine(OutputEnd);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top