Как я могу взаимодействовать с командной строкой из кода C #?
-
10-07-2019 - |
Вопрос
Я пытаюсь взаимодействовать с командной строкой 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 , но меня немного ошеломляет это исходный код.
Решение
Проверьте http://www.codeproject.com/cs/library/CommandLineHelper. ASP р>
[marc_s] этот URL приводит к тому, что страница 404 не найдена.
Правильный URL-адрес наиболее вероятен: http://www.codeproject.com/ KB / строка / CommandLineHelper.aspx
Другие советы
Я думаю, ты не можешь. Если вы показываете консольную команду Prompt, вы не сможете прочитать вывод. Я думаю, что вам нужно нарисовать собственную командную строку, если вы читаете вывод процесса.