zoukankan      html  css  js  c++  java
  • c# 调用CMD窗口执行命令

      1.c# 调用CMD窗体执行命令 阻塞执行, 并在最后执行完后一次性输出执行结果

            public static string RunCmd(string cmd)
            {
                //string strInput = Console.ReadLine();
                Process p = new Process();
                //设置要启动的应用程序
                p.StartInfo.FileName = "cmd.exe";
                //是否使用操作系统shell启动
                p.StartInfo.UseShellExecute = false;
                // 接受来自调用程序的输入信息
                p.StartInfo.RedirectStandardInput = true;
                //输出信息
                p.StartInfo.RedirectStandardOutput = true;
                // 输出错误
                p.StartInfo.RedirectStandardError = true;
                //不显示程序窗口
                p.StartInfo.CreateNoWindow = true;
                p.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
                //启动程序
                p.Start();
    
                //向cmd窗口发送输入信息
                p.StandardInput.WriteLine(cmd + "&exit");
    
                p.StandardInput.AutoFlush = true;
    
                //获取输出信息
                string strOuput = p.StandardOutput.ReadToEnd();
                //等待程序执行完退出进程
                p.WaitForExit();
                p.Close();
                return strOuput;
                //Console.WriteLine(strOuput);
            }

      

      2. 调用CMD窗体执行命令  实时获取执行结果并输出 

         public string RunCmd(string cmd)
            {
                try
                {
                    //string strInput = Console.ReadLine();
                    Process p = new Process();
                    //设置要启动的应用程序
                    p.StartInfo.FileName = "cmd.exe";
                    //是否使用操作系统shell启动
                    p.StartInfo.UseShellExecute = false;
                    // 接受来自调用程序的输入信息
                    p.StartInfo.RedirectStandardInput = true;
                    //输出信息
                    p.StartInfo.RedirectStandardOutput = true;
                    // 输出错误
                    p.StartInfo.RedirectStandardError = true;
                    //不显示程序窗口
                    p.StartInfo.CreateNoWindow = true;
                    p.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
    
                    p.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived);
                    p.ErrorDataReceived += new DataReceivedEventHandler(p_ErrorDataReceived);
                    //启用Exited事件
                    p.EnableRaisingEvents = true;
                    p.Exited += new EventHandler(Process_Exited);
    
                    //启动程序
                    p.Start();
                    p.BeginOutputReadLine();
                    p.BeginErrorReadLine();
                    p.StandardInput.AutoFlush = true;
                    //输入命令
                    p.StandardInput.WriteLine(cmd);
                    p.StandardInput.WriteLine("exit");
    
                    //获取输出信息
                    // string strOuput = p.StandardOutput.ReadToEnd();
                    //等待程序执行完退出进程
                    //p.WaitForExit();
                    //p.Close();
                    // return strOuput;
                    return string.Empty;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
    
    
            private void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
            {
                if (e.Data != null)
                {
                    Console.WriteLine(e.Data);
                }
            }
    
            private void p_ErrorDataReceived(object sender, DataReceivedEventArgs e)
            {
                if (e.Data != null)
                {
                    Console.WriteLine(e.Data);
                }
            }
    
            private void Process_Exited(object sender, EventArgs e)
            {
            Console.WriteLine("命令执行完毕");
         }
  • 相关阅读:
    [LeetCode] Excel Sheet Column Title
    [LeetCode] Paint House
    [LeetCode] Interleaving String
    [LeetCode] Plus One
    [LeetCode] Spiral Matrix
    [LeetCode] Spiral Matrix II
    [LeetCode] Rotate Image
    [LeetCode] Maximum Gap
    android学习日记13--数据存储之ContentProvide
    android学习日记0--开发需要掌握的技能
  • 原文地址:https://www.cnblogs.com/applebox/p/11612457.html
Copyright © 2011-2022 走看看