您的位置:首页 > 编程语言 > C#

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

2016-11-23 11:38 495 查看

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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息