请问怎么在c#中调用cmd的命令
不用Process.Start(@   "路径\批处理名.bat   ");这种方式
而是象c++中使用system(XXX);这种一样 可以直接把代码写在程序中
求教

解决方案 »

  1.   

    /// <summary>
        /// 执行CMD命令。
        /// </summary>
        public string RunCmd(string strCmd)
        {
            string rInfo;
            try
            {
                Process myProcess = new Process();
                ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("cmd.exe");
                myProcessStartInfo.UseShellExecute = false;
                myProcessStartInfo.RedirectStandardOutput = true;
                myProcess.StartInfo = myProcessStartInfo;
                myProcessStartInfo.Arguments = "/c " + strCmd;
                myProcess.Start();
                StreamReader myStreamReader = myProcess.StandardOutput;
                rInfo = myStreamReader.ReadToEnd();
                myProcess.Close();
                rInfo = strCmd + "\r\n" + rInfo;
                return rInfo;
            }
            catch (Exception ex)
            {
                return ex.Message;
            }
        }
      

  2.   

    public   void   RunCmd(string   strCmd) 
            { 
                Process prc = new Process();
                prc.StartInfo.FileName = "cmd.exe";
                prc.StartInfo.UseShellExecute = false;
                prc.StartInfo.RedirectStandardInput = true;
                prc.StartInfo.RedirectStandardOutput = true;
                prc.StartInfo.RedirectStandardError = true;
                prc.StartInfo.CreateNoWindow = true;
                prc.Start();
                prc.StandardInput.WriteLine(strCmd);
                prc.StandardInput.Close();
                string str = prc.StandardOutput.ReadToEnd();
                prc.Close();
            }
      

  3.   

    using System;
    using System.Diagnostics;
    namespace ApplyCmd
    {
     /// 
     /// CmdUtility 的摘要说明。
     /// 
     public class CmdUtility
     {
      
      /// 
      /// 执行cmd.exe命令
      /// 
      ///命令文本
      /// 命令输出文本
      public static string ExeCommand(string commandText)
      {
       return ExeCommand(new string []{commandText});
      }
      /// 
      /// 执行多条cmd.exe命令
      /// 
      ///命令文本数组
      /// 命令输出文本
      public static string ExeCommand(string [] commandTexts)
      {
       Process p = new Process();
       p.StartInfo.FileName = "cmd.exe";
       p.StartInfo.UseShellExecute = false;
       p.StartInfo.RedirectStandardInput = true;
       p.StartInfo.RedirectStandardOutput = true;
       p.StartInfo.RedirectStandardError = true;
       p.StartInfo.CreateNoWindow = true;
       string strOutput = null;
       try
       {
        p.Start();
        foreach(string item in commandTexts)
        {
         p.StandardInput.WriteLine(item);
        }
        p.StandardInput.WriteLine("exit");
        strOutput = p.StandardOutput.ReadToEnd();
        p.WaitForExit();
        p.Close();
       }
       catch(Exception e)
       {
        strOutput = e.Message;
       }
       return strOutput;
      }
      /// 
      /// 启动外部Windows应用程序,隐藏程序界面
      /// 
      ///应用程序路径名称
      /// true表示成功,false表示失败
      public static bool StartApp(string appName)
      {
       return StartApp(appName,ProcessWindowStyle.Hidden);
      }
      /// 
      /// 启动外部应用程序
      /// 
      ///应用程序路径名称
      ///进程窗口模式
      /// true表示成功,false表示失败
      public static bool StartApp(string appName,ProcessWindowStyle style)
      {
       return StartApp(appName,null,style);
      }
      /// 
      /// 启动外部应用程序,隐藏程序界面
      /// 
      ///应用程序路径名称
      ///启动参数
      /// true表示成功,false表示失败
      public static bool StartApp(string appName,string arguments)
      {
       return StartApp(appName,arguments,ProcessWindowStyle.Hidden);
      }
      /// 
      /// 启动外部应用程序
      /// 
      ///应用程序路径名称
      ///启动参数
      ///进程窗口模式
      /// true表示成功,false表示失败
      public static bool StartApp(string appName,string arguments,ProcessWindowStyle style)
      {
       bool blnRst = false;
       Process p = new Process();
       p.StartInfo.FileName = appName;//exe,bat and so on
       p.StartInfo.WindowStyle = style;
       p.StartInfo.Arguments = arguments;
       try
       {
        p.Start();
        p.WaitForExit();
        p.Close();
        blnRst = true;
       }
       catch
       {
       }
       return blnRst;
      }
     }
    }http://blog.csdn.net/xiaohutushen/archive/2007/04/05/1553272.aspx
      

  4.   

    请问我调用p.StratInfo.RedirectStandardInput = true;
    程序就会一闪就没了,这是什么原因呀