开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 3318|回复: 0
收起左侧

[C#求助] c#获取cmd命令行结果问题

[复制链接]
结帖率:100% (53/53)
发表于 2019-5-26 07:43:46 | 显示全部楼层 |阅读模式   黑龙江省伊春市
本帖最后由 DDSGXQ 于 2019-5-26 07:45 编辑
  1. private void button1_Click(object sender, EventArgs e)
  2.         {
  3.             textBox1.AppendText(RunCmd("java"));
  4.             RunCmd_2("java");
  5.             
  6.         }
  7.         public string RunCmd(string cmd)
  8.         {
  9.             Process proc = new Process();
  10.             proc.StartInfo.CreateNoWindow = true; // 不创建新窗口
  11.             proc.StartInfo.FileName = "cmd.exe"; //命令
  12.             proc.StartInfo.UseShellExecute = false; //不启用shell启动进程
  13.             proc.StartInfo.RedirectStandardError = true; // 重定向错误输出
  14.             proc.StartInfo.RedirectStandardInput = true; // 重定向输入
  15.             proc.StartInfo.RedirectStandardOutput = true; // 重定向标准输出
  16.             proc.Start();
  17.             proc.StandardInput.WriteLine(cmd); //cmd执行的语句
  18.             proc.StandardInput.WriteLine("exit"); //退出
  19.             string outStr = proc.StandardOutput.ReadToEnd(); //读取命令执行信息
  20.             proc.Close();
  21.             return outStr;
  22.         }
  23.         public void RunCmd_2(string cmd)
  24.         {
  25.             cmd = cmd.Trim().TrimEnd('&') + "&exit";//说明:不管命令是否成功均执行exit命令,否则当调用ReadToEnd()方法时,会处于假死状态
  26.             using (Process p = new Process())
  27.             {
  28.                 p.StartInfo.FileName = "cmd.exe";
  29.                 p.StartInfo.UseShellExecute = false;        //是否使用操作系统shell启动
  30.                 p.StartInfo.RedirectStandardInput = true;   //接受来自调用程序的输入信息
  31.                 p.StartInfo.RedirectStandardOutput = true;  //由调用程序获取输出信息
  32.                 p.StartInfo.RedirectStandardError = true;   //重定向标准错误输出
  33.                 p.StartInfo.CreateNoWindow = true;          //不显示程序窗口
  34.                 p.Start();//启动程序
  35.                 //向cmd窗口写入命令
  36.                 p.StandardInput.WriteLine(cmd);
  37.                 p.StandardInput.AutoFlush = true;
  38.                 //获取cmd窗口的输出信息
  39.                 StreamReader reader = p.StandardOutput;//截取输出流
  40.                 string line = reader.ReadLine();//每次读取一行
  41.                 textBox2.AppendText(line + "\n");
  42.                 while (!reader.EndOfStream)
  43.                 {
  44.                     line = reader.ReadLine();
  45.                     textBox2.AppendText(line + "\n");
  46.                 }
  47.                 p.WaitForExit();//等待程序执行完退出进程
  48.                 p.Close();
  49.             }

  50.         }
复制代码


目的是运行本地的java命令,比如javac 123.java 或者java -version。用上面的方法返回不了参数。

我用cmd窗口都可以的,怎么办啊 搜狗截图19年05月26日0741_1.png

但是ping www.baidu.com都没问题。
搜狗截图19年05月26日0742_2.png


您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表