標籤:style blog http color io os 使用 ar for
System.Diagnostics 命名空間提供類,使您能夠與系統進程、事件記錄和效能計數器進行互動。
Process類提供對本地和遠程進程的訪問並使您能夠啟動和停止本地系統進程。
Process除了可以執行bat,還可以執行電腦上其它的應用程式,包括各種bat及指令碼
使用Demo
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:http://msdn.microsoft.com/zh-cn/library/system.diagnostics.process(v=vs.110).aspx
C# Process執行bat