Скрипт Powershell НЕ отображает вывод на консоли ⇐ C#
-
Гость
Скрипт Powershell НЕ отображает вывод на консоли
У меня есть фрагмент кода ниже, который запускается из файла C# в серверной части.
с использованием (Процесс = новый процесс()) { процесс.StartInfo.FileName = "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"; String cmd = "C:\\Users\\xyz\\AppData\\Local\\Temp\\2\\Demo.ps1"; процесс.StartInfo.Аргументы = cmd; процесс.StartInfo.UseShellExecute = ложь; процесс.StartInfo.RedirectStandardOutput = ложь; процесс.StartInfo.RedirectStandardError = правда; Ошибка StringBuilder = новый StringBuilder(); процесс.Начать(); пока (правда) { bool hasExited = процесс.HasExited; Строковая ошибкаStr = ноль; while ((errorStr = процесс.StandardError.ReadLine()) != null) error.AppendLine(errorStr); если (вышел) перерыв; Thread.Sleep(100); } if (process.ExitCode != 0 || error.Length > 0) выдать новое исключение (error.ToString()); } Демо.ps1
write-host "Теперь работает правильно!" Я хочу, чтобы строка печаталась в том же открытом окне PowerShell, но почему-то она не отображает никаких результатов в открытом окне PowerShell. Если я перенаправлю вывод в текстовый файл, он будет хорошо виден.
У меня есть фрагмент кода ниже, который запускается из файла C# в серверной части.
с использованием (Процесс = новый процесс()) { процесс.StartInfo.FileName = "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"; String cmd = "C:\\Users\\xyz\\AppData\\Local\\Temp\\2\\Demo.ps1"; процесс.StartInfo.Аргументы = cmd; процесс.StartInfo.UseShellExecute = ложь; процесс.StartInfo.RedirectStandardOutput = ложь; процесс.StartInfo.RedirectStandardError = правда; Ошибка StringBuilder = новый StringBuilder(); процесс.Начать(); пока (правда) { bool hasExited = процесс.HasExited; Строковая ошибкаStr = ноль; while ((errorStr = процесс.StandardError.ReadLine()) != null) error.AppendLine(errorStr); если (вышел) перерыв; Thread.Sleep(100); } if (process.ExitCode != 0 || error.Length > 0) выдать новое исключение (error.ToString()); } Демо.ps1
write-host "Теперь работает правильно!" Я хочу, чтобы строка печаталась в том же открытом окне PowerShell, но почему-то она не отображает никаких результатов в открытом окне PowerShell. Если я перенаправлю вывод в текстовый файл, он будет хорошо виден.
Мобильная версия