zoukankan      html  css  js  c++  java
  • C#执行DOS命令(CMD命令)

    在c#程序中,有时会用到调用cmd命令完成一些功能,于是在网上查到了如下方法,实现了
    c#执行DOS命令,并返回结果。

            //dosCommand Dos命令语句
            public string Execute(string dosCommand)
            {
                return Execute(dosCommand, 10);
            }
            /// <summary>
            /// 执行DOS命令,返回DOS命令的输出
            /// </summary>
            /// <param name="dosCommand">dos命令</param>
            /// <param name="milliseconds">等待命令执行的时间(单位:毫秒),
            /// 如果设定为0,则无限等待</param>
            /// <returns>返回DOS命令的输出</returns>
            public static string Execute(string command, int seconds)
            {
                string output = ""; //输出字符串
                if (command != null && !command.Equals(""))
                {
                    Process process = new Process();//创建进程对象
                    ProcessStartInfo startInfo = new ProcessStartInfo();
                    startInfo.FileName = "cmd.exe";//设定需要执行的命令
                    startInfo.Arguments = "/C " + command;//“/C”表示执行完命令后马上退出
                    startInfo.UseShellExecute = false;//不使用系统外壳程序启动
                    startInfo.RedirectStandardInput = false;//不重定向输入
                    startInfo.RedirectStandardOutput = true; //重定向输出
                    startInfo.CreateNoWindow = true;//不创建窗口
                    process.StartInfo = startInfo;
                    try
                    {
                        if (process.Start())//开始进程
                        {
                            if (seconds == 0)
                            {
                                process.WaitForExit();//这里无限等待进程结束
                            }
                            else
                            {
                                process.WaitForExit(seconds); //等待进程结束,等待时间为指定的毫秒
                            }
                            output = process.StandardOutput.ReadToEnd();//读取进程的输出
                        }
                    }
                    catch
                    {
                    }
                    finally
                    {
                        if (process != null)
                            process.Close();
                    }
                }
                return output;
            }
  • 相关阅读:
    spring揭秘读书笔记----spring的ioc容器之BeanFactory
    spring启动加载过程源码分析
    java线程数过高原因分析
    spring揭秘读书笔记----ioc的基本概念
    git merge rebase的区别及应用场景
    spring实现定时任务
    jetty.xml解析
    Hackthebox--------irked
    CTF之信息泄漏
    CTF web题型解题技巧
  • 原文地址:https://www.cnblogs.com/mili3/p/4936765.html
Copyright © 2011-2022 走看看