C# 执行CMD命令

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);

欢迎相互交流学习!

jiayan1578@outlook.com

原文地址:https://www.cnblogs.com/jiayan1578/p/11933604.html