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中。 我在做什么错?
答
这里是一个增编我的意见,以使其更清晰:
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";
你可能没有看到它,因为你已经重定向标准输出。试着评论一下,看看会发生什么。 – tinstaafl 2014-09-02 20:50:02
无法在没有重定向的情况下运行StandardInput。 – 2014-09-03 12:43:45
未输入输出。子进程的输出被重定向回调用进程,但你没有做任何事情。您不需要为了使用输入流而重定向两个流。 – tinstaafl 2014-09-03 14:51:50