Как я могу взаимодействовать с командной строкой из кода C #? - PullRequest
2 голосов
/ 29 октября 2009

Я пытаюсь взаимодействовать с командной строкой 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 , но я немного ошеломлен его исходным кодом.

Ответы [ 2 ]

1 голос
/ 29 октября 2009

Чек http://www.codeproject.com/cs/library/CommandLineHelper.asp

[marc_s] этот URL приводит к тому, что страница 404 не найдена.

Правильный URL-адрес наиболее вероятен: http://www.codeproject.com/KB/string/CommandLineHelper.aspx

0 голосов
/ 29 октября 2009

Я думаю, вы не можете. Если вы показываете консольную команду Prompt, вы не сможете прочитать вывод. Я думаю, вам нужно нарисовать собственную командную строку, если вы читаете вывод процесса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...