C# 调用windows命令行

话不多说直接贴代码:

using System.Diagnostics;

namespace cmd
{
    /// 
    /// 调用cmd命令行
    /// 
    public static class cmd
    {
        /// 
        /// 发命令
        /// 
        /// 
        /// 
        public static string Cmd(string commandLine)
        {
            commandLine = commandLine.Trim().TrimStart('&') + "&exit";//&执行两条命令的标识,这里第二条命令的目的是当调用ReadToEnd()方法是,不会出现假死状态
            string outputMsg = "";
            Process pro = new Process();
            pro.StartInfo.FileName = "cmd.exe";//调用cmd.exe
            pro.StartInfo.UseShellExecute = false;//是否启用shell启动进程
            pro.StartInfo.RedirectStandardError = true;
            pro.StartInfo.RedirectStandardInput = true;
            pro.StartInfo.RedirectStandardOutput = true;//重定向的设置
            pro.StartInfo.CreateNoWindow = true;//不创建窗口
            pro.Start();
            pro.StandardInput.WriteLine(commandLine);//执行cmd语句
            pro.StandardInput.AutoFlush = true;
            
            outputMsg+= pro.StandardOutput.ReadToEnd();//读取返回信息
            //outputMsg=outputMsg.Substring(outputMsg.IndexOf(commandLine)+commandLine.Length);//返回发送命令之后的信息
                 
            pro.WaitForExit();//等待程序执行完退出,不过感觉不用这条命令,也可以达到同样的效果
            pro.Close();

            return outputMsg;
        }
    }
}

只要会这个,其他的应用就好办了。比如Ping。

你可能感兴趣的:(C# 调用windows命令行)