zoukankan      html  css  js  c++  java
  • C#运行批处理或者bat文件并且得到输出

    我的一个爱好,就是收集网上共享的一些功能型代码。收集下来,用的时候,就非常方便了。这一段小程序,可以用来直接运行批处理(cmd)语句或者批处理文件(*.bat|*.com)等,并且可以获得批处理语句运行后的返回文字。很好,很强大。除了可以运行cmd之外,也可以直接运行exe或者其他程序,设置是否以后台静默的方式运行。主要采用的技术就是Process。

            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());
                }
            }

    本代码来自NewLife组件。新生命网站:http://www.newlifex.com/

    欢迎来到:码农很忙
  • 相关阅读:
    Palindrome Partitioning
    Minimum Path Sum
    Maximum Depth of Binary Tree
    Minimum Depth of Binary Tree
    Unique Binary Search Trees II
    Unique Binary Search Trees
    Merge Intervals
    Merge Sorted Array
    Unique Paths II
    C++ Primer Plus 笔记第九章
  • 原文地址:https://www.cnblogs.com/Soar1991/p/2838501.html
Copyright © 2011-2022 走看看