c#调用cmd窗口执行多条命令时为何cmd不显示?
代码如下:System.Diagnostics.Processprocess=newProcess();//创建进程对象process.StartInfo.FileNam...
代码如下:
System.Diagnostics.Process process = new Process(); //创建进程对象
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.Arguments = "/kipconfig";
process.StartInfo.UseShellExecute = false; //不使用系统外壳程序启动
process.StartInfo.RedirectStandardInput = true; //重定向输入(一定是true)
process.StartInfo.RedirectStandardOutput = true; //重定向输出
process.StartInfo.CreateNoWindow = false; //不创建窗口
process.Start();
process.StandardInput.WriteLine("ping 192.168.1.1");
process.Close();
cmd窗口是打开的,但是就是不显示内容。也不知道有没有执行成功。
高手请指点一二。 展开
System.Diagnostics.Process process = new Process(); //创建进程对象
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.Arguments = "/kipconfig";
process.StartInfo.UseShellExecute = false; //不使用系统外壳程序启动
process.StartInfo.RedirectStandardInput = true; //重定向输入(一定是true)
process.StartInfo.RedirectStandardOutput = true; //重定向输出
process.StartInfo.CreateNoWindow = false; //不创建窗口
process.Start();
process.StandardInput.WriteLine("ping 192.168.1.1");
process.Close();
cmd窗口是打开的,但是就是不显示内容。也不知道有没有执行成功。
高手请指点一二。 展开
3个回答
展开全部
因为你重定向了输入输出,所以cmd窗口不能显示出执行结果。
如果想在cmd窗口显示
process.StartInfo.UseShellExecute = true;
process.StartInfo.RedirectStandardInput = false;
process.StartInfo.RedirectStandardOutput = false;
然后以下面的方式传参数
process.StartInfo.Arguments = "/k command" 单个命令
或
process.StartInfo.Arguments = "/k command.bat" bat中可以写多个命令
启动
process.start();
搞定
如果想在cmd窗口显示
process.StartInfo.UseShellExecute = true;
process.StartInfo.RedirectStandardInput = false;
process.StartInfo.RedirectStandardOutput = false;
然后以下面的方式传参数
process.StartInfo.Arguments = "/k command" 单个命令
或
process.StartInfo.Arguments = "/k command.bat" bat中可以写多个命令
启动
process.start();
搞定
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
process.StandardInput.WriteLine("ping 192.168.1.1\n");
改成这个试试
改成这个试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询