Неправильный вывод внешнего пакетного сценария C#
-
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);
Не связан с StackOverflow