C# 执行DOS命令,C# 调用bat文件。

在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;    
 }    

在C#程序中,有时也会用到调用bat文件来完成命令的功能,再网上搜集了一下,收藏共享。

 这里需要使用一个命名空间:

using System.Diagnostics;

调用bat代码如:

Process proc = null;
       try
            {
                string targetDir = string.Format(@"D:\BizMap\");//这是bat存放的目录
				string targetDir1 = AppDomain.CurrentDomain.BaseDirectory; //或者这样写,获取程序目录
                proc = new Process();
                proc.StartInfo.WorkingDirectory = targetDir1;
                proc.StartInfo.FileName = "testChange.bat";//bat文件名称
                proc.StartInfo.Arguments = string.Format("10");//this is argument
                //proc.StartInfo.CreateNoWindow = true;
                //proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;//这里设置DOS窗口不显示,经实践可行
                proc.Start();
                proc.WaitForExit();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception Occurred :{0},{1}", ex.Message, ex.StackTrace.ToString());
            }


猜你喜欢

转载自blog.csdn.net/hht006158/article/details/80262264