Я пытаюсь взаимодействовать с командной строкой Windows из кода. Моя цель - отобразить подсказку, ввести некоторую команду, отобразить вывод и повторить. Но похоже, что первые три не могут работать одновременно.
private void button2_Click(object sender, EventArgs e)
{
Process proc = new Process();
proc.StartInfo.FileName = "cmd";
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardInput = true;
proc.Start();
StreamReader k = new StreamReader(proc.StandardOutput.BaseStream);
textBox2.Text = k.ReadToEnd();
}
Приведенный выше код просто зависает. Если я не установлю RedirectStandardInput, то я могу отобразить всю подсказку. И если я закрою средство записи для StandardInput, я смогу запустить команду, но не увидев подсказку или не повторив ее. Итак, как я могу получить приглашение показать, выполнить команду и показать вывод ... неоднократно?
Я надеюсь воспроизвести поведение командной строки Console2 , но я немного ошеломлен его исходным кодом.