unity 自定义工具之“执行bat文件”
具体代码如下:
public class TestSaveSprite
{
private static void RunMyBat(string batFile, string workingDir)
{
var path = EdtUtil.FormatPath(workingDir);
if (!System.IO.Directory.Exists(path))
{
Debug.LogError("bat文件不存在:" + path);
}
else
{
EdtUtil.RunBat(batFile, "", path);
}
}
[MenuItem("Tools/执行pdb - mdb.bat %#M")]
private static void Run()
{
// 执行bat脚本
RunMyBat("pdb2mdb.bat", "pdb2mdb");
}
}
class EdtUtil
{
public static System.Diagnostics.Process CreateShellExProcess(string cmd, string args, string workingDir = "")
{
var pStartInfo = new System.Diagnostics.ProcessStartInfo(cmd);
pStartInfo.Arguments = args;
pStartInfo.CreateNoWindow = false;
pStartInfo.UseShellExecute = true;
pStartInfo.RedirectStandardError = false;
pStartInfo.RedirectStandardInput = false;
pStartInfo.RedirectStandardOutput = false;
if (!string.IsNullOrEmpty(workingDir))
pStartInfo.WorkingDirectory = workingDir;
return System.Diagnostics.Process.Start(pStartInfo);
}
public static void RunBat(string batfile, string args, string workingDir = "")
{
var p = CreateShellExProcess(batfile, args, workingDir);
p.Close();
}
public static string FormatPath(string path)
{
DirectoryInfo direction = new DirectoryInfo(path);
FileInfo[] files = direction.GetFiles("*", SearchOption.TopDirectoryOnly);
path=direction.FullName.ToString();
//path=files[0].FullName.ToString();
return path;
}
}
这段代码就是方便直接用unity调用外部的bat文件
就是一个小工具 就是一个小工具
因为之前项目的一些原因
代码编完之后需要调用一个bat
每次都需要切出去点一下 然后再切回unity
觉得有些麻烦 所以写了一个小工具
方便直接在unity中使用
自己试过 还挺好用的 大家如果有类似的需要可以试一下
代码没有什么难度 就不加注释了