zoukankan      html  css  js  c++  java
  • C#-执行cmd命令,获取结果

     

    using System;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace EFDemo {
        public partial class ExecCmd : Form {
            public ExecCmd() {
                InitializeComponent();
                Control.CheckForIllegalCrossThreadCalls = false;
            }
    
            private void button1_Click(object sender, EventArgs e) {
                if (pro == null) { MessageBox.Show("进程未开启"); return; }
                Task.Factory.StartNew(() => {
    
                    AppendLog("执行命令: " + textBox1.Text);
                    pro.StandardInput.WriteLine(textBox1.Text);
                    //pro.StandardInput.WriteLine("exit");
                    pro.StandardInput.AutoFlush = true;
                    //获取cmd窗口的输出信息
    
                    string output = "";
                    while (true) {
                        output = pro.StandardOutput.ReadLine();
                        AppendLog(output);
                    }
                });
            }
    
            public void AppendLog(string str) {
                textBox2.AppendText("
    " + str);
            }
    
    
            //CMD进程
            System.Diagnostics.Process pro = null;
            //启动线程
            private void button2_Click(object sender, EventArgs e) {
    
                if (pro != null) {
                    MessageBox.Show("只能运行一个程序!", "请确定", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }
    
                AppendLog("初始化参数");
                pro = new System.Diagnostics.Process();
                pro.StartInfo.FileName = "cmd.exe";
                pro.StartInfo.UseShellExecute = false;
                pro.StartInfo.RedirectStandardError = true;
                pro.StartInfo.RedirectStandardInput = true;
                pro.StartInfo.RedirectStandardOutput = true;
                pro.StartInfo.CreateNoWindow = true;
                //pro.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
                AppendLog("启动");
                pro.Start();
            }
    
            //关闭
            private void button3_Click(object sender, EventArgs e) {
                if (pro != null) {
                    pro.Close();
                    pro = null;
                    AppendLog("关闭");
                }
            }
    
    
    
        }
    }
    
  • 相关阅读:
    Service Name Port Number Transport Protocol tcp udp 端口号16bit
    linux linux 互传文件 win 不通过 ftp sftp 往linux 传文件(文件夹)
    soft deletion Google SRE 保障数据完整性的手段
    Taylor series
    Taylor's theorem
    Moving average
    REQUEST
    Unix file types
    mysqld.sock
    Tunneling protocol
  • 原文地址:https://www.cnblogs.com/grj001/p/12223438.html
Copyright © 2011-2022 走看看