C# Process执行bat

本文为作者原创,转载请注明出处:https://www.cnblogs.com/zhaoqingqing/p/4029277.html



Process类#

System.Diagnostics 命名空间提供类,使您能够与系统进程、事件日志和性能计数器进行交互。

Process类提供对本地和远程进程的访问并使您能够启动和停止本地系统进程。

Process除了可以执行bat,还可以执行计算机上其它的应用程序,包括各种bat及脚本

使用示例一#

复制代码
using System;
using System.Diagnostics;

public class ProcessDemo
{
    static void Main(string[] args)
    {
        Process process = new Process();

        try
        {
            //打开C盘
            //Process.Start("c:\\");
            
            //打开word文件
            string file = @"D:\Code\Unity3D\SVN\cosmosbox\关卡制作教程.doc";
            //OpenMsWord(file);
            
            //执行bat文件
            LaunchBat("d:/run.cmd");
        }
        catch (Exception e)
        {
            Console.WriteLine( e.Message);
        }
    }

    /// <summary>
    /// 传入文件名打开文件
    /// </summary>
    /// <param name="file"></param>
    static void OpenMsWord(string file)
    {
        ProcessStartInfo startInfo=new ProcessStartInfo();
        //我的机器上没有安装microsoft word --!
        //startInfo.FileName = "winword";
        startInfo.FileName = "wps";
        startInfo.Arguments = file;//设置参数
        Process.Start(startInfo);
    }

    /// <summary>
    /// 执行bat文件
    /// </summary>
    /// <param name="batName"></param>
    static void LaunchBat(string batName)
    {
        ProcessStartInfo startInfo = new ProcessStartInfo();
        startInfo.CreateNoWindow = true;
        startInfo.FileName =batName;
        startInfo.WindowStyle=ProcessWindowStyle.Maximized;
        Process.Start(startInfo);
        
    }
}
复制代码

使用示例二#

调用此方法将在执行 3TexturePacker打包Players图集.bat

复制代码
/// <summary>
    ///     执行bat,为tk2d打包手持武器准备
    /// </summary>
    private static void ExecuteBat()
    {
        Process proc = null;
        AppDataPath = Application.dataPath;
        try
        {
            proc = new Process();
            proc.StartInfo.FileName = AppDataPath + "/3TexturePacker打包Players图集.bat";
            //proc.StartInfo.Arguments = string.Format("10");//this is argument
            proc.StartInfo.CreateNoWindow = false;
            proc.Start();
            proc.WaitForExit();
        }
        catch (Exception ex)
        {
            CBase.LogError("Exception Occurred :{0},{1}", ex.Message, ex.StackTrace);
        }
        CBase.Log("打包Weapon InHand图集完成!");
    }
复制代码

MSDN文档#

MSDN:http://msdn.microsoft.com/zh-cn/library/system.diagnostics.process(v=vs.110).aspx

作者:赵青青   一名在【网易游戏】做游戏开发的程序员,擅长Unity3D,游戏开发,.NET等领域。
本文版权归作者和博客园共有,欢迎转载,转载之后请务必在文章明显位置标出原文链接和作者,谢谢。
如果本文对您有帮助,请点击【推荐】您的赞赏将鼓励我继续创作!想跟我一起进步么?那就【关注】我吧。
posted @   赵青青  阅读(10553)  评论(0编辑  收藏  举报
编辑推荐:
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
CONTENTS
点击右上角即可分享
微信分享提示