C#执行CMD命令并接收返回结果的实现方法

1.引入

using System.Diagnostics;  

2.创建执行CMD

Process CmdProcess = new Process();  
CmdProcess.StartInfo.FileName = "cmd.exe";    

3.配置开发方式输入输出错误

CmdProcess.StartInfo.CreateNoWindow = true;         // 不创建新窗口    
CmdProcess.StartInfo.UseShellExecute = false;       //不启用shell启动进程  
CmdProcess.StartInfo.RedirectStandardInput = true;  // 重定向输入    
CmdProcess.StartInfo.RedirectStandardOutput = true; // 重定向标准输出    
CmdProcess.StartInfo.RedirectStandardError = true;  // 重定向错误输出  

4.执行cmd且获取返回值

方法一

CmdProcess.StartInfo.Arguments = "/c " + "=====cmd命令======";//“/C”表示执行完命令后马上退出  
CmdProcess.Start();//执行  

CmdProcess.StandardOutput.ReadToEnd();//获取返回值  

CmdProcess.WaitForExit();//等待程序执行完退出进程  

CmdProcess.Close();//结束  

方法二

CmdProcess.StandardInput.WriteLine(str + "&exit"); //向cmd窗口发送输入信息  
CmdProcess.StandardInput.AutoFlush = true;  //提交  

CmdProcess.Start();//执行  

CmdProcess.StandardOutput.ReadToEnd();//输出  

CmdProcess.WaitForExit();//等待程序执行完退出进程  

CmdProcess.Close();//结束  

5.输出返回值

首先 引入

using System.IO;
            StreamReader sr =CmdProcess.StandardOutput;//获取返回值 
            string line = ""; 
            int num = 1;
            while ((line=sr.ReadLine())!=null)
            {   
                if(line!="")
                {
                    Console.WriteLine(line + " " + num++);
                }
            }

6.Process 的 HasExited属性

    //等待程序执行完退出进程
    CmdProcess.WaitForExit();

    //判断程序是退出了进程 退出为true(上面的退出方法执行完后,HasExited的返回值为 true) 
     falg = CmdProcess.HasExited; 

你可能感兴趣的:(C#学习笔记)