C# Process執行bat


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM