2014-09-02 2 views
0

Я пытаюсь создать приложение, которое запускает cmd.exe и передает команду. Важно, чтобы команда была видна на cmd. Вот что я получил до сих пор, но он, похоже, не работает. Есть идеи?C# Запустить команду в командной строке и показать команду

  Process myProc = new Process(); 
      myProc.StartInfo.FileName = "cmd.exe"; 
      myProc.StartInfo.RedirectStandardInput = true; 
      myProc.StartInfo.RedirectStandardOutput = true; 
      myProc.StartInfo.UseShellExecute = false; 
      myProc.Start(); 
      StreamWriter sendCommand = myProc.StandardInput; 
      sendCommand.WriteLine("run.exe --forever"); //I want this command to show up in cmd 

Когда выполненный код выполнен, run.exe запущен, но команда не отображается в cmd. Что я делаю неправильно?

+2

Возможно, вы не видите этого, потому что вы перенаправили стандартный вывод. Попробуйте прокомментировать это и посмотреть, что произойдет. – tinstaafl

+0

Невозможно запустить StandardInput без перенаправления. –

+0

Не входной выход. Выход дочернего процесса перенаправляется обратно в вызывающий процесс, но с ним ничего не происходит. Вам не нужно перенаправлять оба потока только для использования входного потока. – tinstaafl

ответ

0

Вот добавление на мой комментарий, чтобы сделать его более ясным:

Process myProc = new Process(); 
myProc.StartInfo.FileName = "cmd.exe"; 
myProc.StartInfo.RedirectStandardInput = true; 
//myProc.StartInfo.RedirectStandardOutput = true; 
myProc.StartInfo.UseShellExecute = false; 
myProc.Start(); 
System.IO.StreamWriter sendCommand = myProc.StandardInput; 
sendCommand.WriteLine("run.exe --forever"); 

Это позволит все выводимый cmd, чтобы показать в консоли cmd.

0

Почему вы используете Streamwriter? Вы можете использовать Аргументы

myProc.StartInfo.Arguments="run.exe --forever"; 
Смежные вопросы