C#在命令提示符下运行命令并显示命令

C#在命令提示符下运行命令并显示命令

问题描述:

我正尝试创建一个启动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 2014-09-02 20:50:02

+0

无法在没有重定向的情况下运行StandardInput。 – 2014-09-03 12:43:45

+0

未输入输出。子进程的输出被重定向回调用进程,但你没有做任何事情。您不需要为了使用输入流而重定向两个流。 – tinstaafl 2014-09-03 14:51:50

这里是一个增编我的意见,以使其更清晰:

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控制台显示。

你为什么使用streamwriter? 您可以使用参数

myProc.StartInfo.Arguments="run.exe --forever";