本文,筆者整合一下網絡上的右鍵打開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工程加載異常,出現引用取不到的現象。