本文,笔者整合一下网络上的右键打开unity工程的批处理脚本,将添加和删除功能整合到一起方便使用,未添加则自动添加,已添加如再次运行则移除这个功能。
代码:
@echo off
mode con cols=60 lines=5
::这里用来测试权限并要求提权
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
goto UACPrompt
) else ( goto Admin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:Admin
::请指定右键菜单名称
set MENUNAME=Open with Unity
::请在下面设置的unity 安装路径
set UNITYPATH=D:\Program Files\Unity3D2017.3.1f1\Editor\Unity.exe
REG QUERY "HKCR\Folder\shell\%MENUNAME%\command" 1>nul 2>nul
if %errorlevel%==0 (
goto :Del
) else (
goto :Add
)
:Add
:: 拼接开启工程的命令
set COMMAND=\"%UNITYPATH%\" -projectPath \"%%1\"
REG ADD "HKCR\Folder\shell\%MENUNAME%" /v "icon" /d "%UNITYPATH%" /f >nul
REG ADD "HKCR\Folder\shell\%MENUNAME%\command" /ve /d "%COMMAND%" /f >nul
if %errorlevel%==0 (
echo 添加成功~
) else (
echo 添加失败
)
pause
exit
:Del
echo 确认删除轻敲任意键,如果退出请点右上角 【X】
pause>nul
REG DELETE "HKCR\Folder\shell\%MENUNAME%" /f >nul
if %errorlevel%==0 (
echo 删除成功~
) else (
echo 删除失败~
)
pause
exit
Tips:
1 . 请务必设置好Unity的安装路径;
2 .如果没有管理员权限会自动弹出UAC。
3 .奇数次运行是添加功能,偶数次运行是移除功能,也即是如果监测到添加过,就会执行移除动作哦,当然,此时你是可以点右上角关闭的这个批处理的。
- 最近打开Unity总是强制要求登录账号,其实用命令行模式开启就能跳过啦,快拷贝去用吧!
测试:
如果有时间 想给这个右键菜单加入二级菜单,毕竟一台电脑上安装了的Unity版本贼多,已经成文,欢迎围观。
扩展阅读:
更新说明:
- 将拼接指令更新为下面这一句 - 2019年9月16日
更新前:
:: 拼接开启工程的命令
set COMMAND=%UNITYPATH% -projectPath %%1%%
更新后:
:: 拼接开启工程的命令
set COMMAND=\"%UNITYPATH%\" -projectPath \"%%1\"
- 解决了工程路径不能中不能存在空格的问题
- 解决了对文件夹右键开启工程如果工程所在文件夹名称中有空格获取的路径为短路径的问题。
- 短路径在Unity 中不支持会导致vs工程加载异常,出现引用取不到的现象。