Как я могу взаимодействовать с командной строкой из кода C #?

StackOverflow https://stackoverflow.com/questions/1641782

Вопрос

Я пытаюсь взаимодействовать с командной строкой 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, вы не сможете прочитать вывод. Я думаю, что вам нужно нарисовать собственную командную строку, если вы читаете вывод процесса.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top