C#运行批处理或者bat文件并且得到输出

 protected static void RunCmd(String cmd, Boolean showWindow, Boolean waitForExit)

{
    WriteLine("RunCmd " + cmd);
 
    var p = new Process();
    var si = new ProcessStartInfo();
    var 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();
 
        var 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());
    }
}
 
posted @ 2012-12-29 13:57  生态圈_行者  阅读(1347)  评论(0编辑  收藏  举报