本文,筆者整合一下網(wǎng)絡(luò)上的右鍵打開(kāi)unity工程的批處理腳本,將添加和刪除功能整合到一起方便使用,未添加則自動(dòng)添加,已添加如再次運(yùn)行則移除這個(gè)功能。
代碼:
@echo off
mode con cols=60 lines=5
::這里用來(lái)測(cè)試權(quán)限并要求提權(quán)
>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
::請(qǐng)指定右鍵菜單名稱
set MENUNAME=Open with Unity
::請(qǐng)?jiān)谙旅嬖O(shè)置的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
:: 拼接開(kāi)啟工程的命令
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 確認(rèn)刪除輕敲任意鍵,如果退出請(qǐng)點(diǎn)右上角 【X】
pause>nul
REG DELETE "HKCR\Folder\shell\%MENUNAME%" /f >nul
if %errorlevel%==0 (
echo 刪除成功~
) else (
echo 刪除失敗~
)
pause
exit
Tips:
1 . 請(qǐng)務(wù)必設(shè)置好Unity的安裝路徑;
2 .如果沒(méi)有管理員權(quán)限會(huì)自動(dòng)彈出UAC。
3 .奇數(shù)次運(yùn)行是添加功能,偶數(shù)次運(yùn)行是移除功能,也即是如果監(jiān)測(cè)到添加過(guò),就會(huì)執(zhí)行移除動(dòng)作哦,當(dāng)然,此時(shí)你是可以點(diǎn)右上角關(guān)閉的這個(gè)批處理的。
- 最近打開(kāi)Unity總是強(qiáng)制要求登錄賬號(hào),其實(shí)用命令行模式開(kāi)啟就能跳過(guò)啦,快拷貝去用吧!
測(cè)試:

演示了刪除和添加功能
如果有時(shí)間 想給這個(gè)右鍵菜單加入二級(jí)菜單,畢竟一臺(tái)電腦上安裝了的Unity版本賊多,已經(jīng)成文,歡迎圍觀。
擴(kuò)展閱讀:
更新說(shuō)明:
- 將拼接指令更新為下面這一句 - 2019年9月16日
更新前:
:: 拼接開(kāi)啟工程的命令
set COMMAND=%UNITYPATH% -projectPath %%1%%
更新后:
:: 拼接開(kāi)啟工程的命令
set COMMAND=\"%UNITYPATH%\" -projectPath \"%%1\"
- 解決了工程路徑不能中不能存在空格的問(wèn)題
- 解決了對(duì)文件夾右鍵開(kāi)啟工程如果工程所在文件夾名稱中有空格獲取的路徑為短路徑的問(wèn)題。
- 短路徑在Unity 中不支持會(huì)導(dǎo)致vs工程加載異常,出現(xiàn)引用取不到的現(xiàn)象。