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());
    }
}
复制代码

【转】:http://www.newlifex.com/showtopic-318.aspx

posted @   纵一苇之所如-  阅读(447)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示