У меня есть скрипт powershell, который выводится на консоль каждые 5 секунд, например:
While($true)
{
Write-Output "test"
Start-Sleep -seconds 5
}
Я хочу иметь приложение Windows Form, которое позволит пользователю ввести путь к файлу сценария, нажать кнопку, а затем отобразить любые дальнейшие выходные данные этого сценария в окне, например:
Однако у меня проблемы с запуском этого скрипта. Основываясь на прочтении разных тем, вот что я получил на данный момент:
private void button1_Click(object sender, EventArgs e)
{
string filepath = textBox1.Text;
if (File.Exists(filepath))
{
string s = "";
var info = new ProcessStartInfo();
Process process = new Process();
info.UseShellExecute = false;
info.RedirectStandardOutput = true;
info.FileName = "powershell.exe";
info.Arguments = filepath;
process.StartInfo = info;
process.Start();
s += process.StandardOutput.ReadToEnd();
process.WaitForExit();
textBox1.AppendText(s);
}
else
{
textBox1.Text = "Error: Invalid file path.";
}
}
Теперь, это действительно открывает окно powershell, поэтому я знаю, что оно, по крайней мере, запускает процесс, но я не вижу, чтобы оно фактически запускало мой скрипт, и я знаю, что файл существует по пути, который я ввожу. Когда я запускаю powershell.exe {filepath}
в терминале командной строки, скрипт работает нормально.
Конечная цель состоит в том, чтобы все выходные данные были записаны в белое текстовое поле с правой стороны приложения Form Desktop выше и постоянно добавлялись в это текстовое поле по мере того, как скрипт выводит.