C#运行批处理【转】
/// <summary> /// C#运行bat文件 /// </summary> /// <param name="batPath"></param> private void RunBat(string batPath) { Process pro = new Process(); FileInfo file = new FileInfo(batPath); //设置启动进程的初始目录 pro.StartInfo.WorkingDirectory = file.Directory.FullName; //设置要启动的引用程序或文档 pro.StartInfo.FileName = batPath; //设置不在新窗口启动 pro.StartInfo.CreateNoWindow = false; //开始执行 pro.Start(); //完成退出 pro.WaitForExit(); }
protected static void RunCmd(String cmd, Boolean showWindow, Boolean waitForExit) { WriteLine("RunCmd " + cmd); Process p = new Process(); ProcessStartInfo si = new ProcessStartInfo(); String path = Environment.SystemDirectory; path = Path.Combine(path, @"cmd.exe"); si.FileName = path; if (!cmd.StartsWith(@"/")) cmd = @"/c " + cmd; si.Arguments = cmd; si.UseShellExecute = false; si.CreateNoWindow = !showWindow; si.RedirectStandardOutput = true; si.RedirectStandardError = true; p.StartInfo = si; p.Start(); if (waitForExit) { p.WaitForExit(); String str = p.StandardOutput.ReadToEnd(); if (!String.IsNullOrEmpty(str)) WriteLine(str.Trim(new Char[] { '\r', '\n', '\t' }).Trim()); str = p.StandardError.ReadToEnd(); if (!String.IsNullOrEmpty(str)) WriteLine(str.Trim(new Char[] { '\r', '\n', '\t' }).Trim()); } }