C#执行CMD命令进行相关操作,记录一下。
/// <summary> /// 执行CMD命令 /// </summary> /// <param name="cmd">要执行的命令</param> /// <returns></returns> public static string RunCMDCommand(string cmd) { string cmdPath = "C:\\Windows\\System32\\cmd.exe"; //cmd.exe执行文件目录 cmd = cmd.Trim().TrimEnd('&') + "&exit"; //不管命令是否成功均执行exit命令,否则当调用ReadToEnd()方法时,会处于假死状态 string result = string.Empty; Process process = new Process(); try { //设置要启动的执行程序 process.StartInfo.FileName = cmdPath; //是否使用操作系统shell启动进程 process.StartInfo.UseShellExecute = false; //应用程序的输入是否从Process.StandardInput流中读取/是否接受来自调用程序的输入信息 process.StartInfo.RedirectStandardInput = true; //是否将应用程序的输出写入Process.StandardOutput流中/是否调用程序获取输出信息 //置为false时StandardOutput.ReadToEnd获取异常 process.StartInfo.RedirectStandardOutput = true; process.StartInfo.RedirectStandardError = true; process.StartInfo.CreateNoWindow = true; process.Start(); //向cmd窗口写入命令 process.StandardInput.WriteLine(cmd); process.StandardInput.AutoFlush = true; //获取cmd窗口的输出信息 result = process.StandardOutput.ReadToEnd(); process.WaitForExit();//等待程序执行完退出进程 process.Close(); } catch(Exception ex) { //记录错误日志信息 //log4net result = string.Empty; } finally { //释放 process.Dispose(); } return result; }
调用:
string cmdStr = "***************"; //要执行的命令 string cmdResult=RunCMDCommand(cmdStr); MessageBox.Show("CMD命令处理结果:"+cmdResult);
欢迎相互交流学习!