01-右键菜单添加删除工具
add-右键菜单添加工具
@echo off &title 右键菜单添加工具 REM set "rootMenu=HKEY_CLASSES_ROOT" set "rootMenu=HKCR" REM set "key=*\shell" REM 文件右键菜单 REM set "key=Directory\shell" REM 文件夹右键菜单 REM set "key=DesktopBackground\shell" REM 桌面右键菜单 set "key=Directory\background\shell" REM 背景右键菜单,包含桌面右键菜单 set "menuName=menuName1" set "cmd=cmd.exe /c \"echo hello\"" set "icon=%SystemRoot%\system32\imageres.dll,-5362" REM 索引与导出文件的索引保持一致即可使用对应ico reg add "%rootMenu%\%key%\%menuName%" /d "%menuName%" /f reg add "%rootMenu%\%key%\%menuName%\command" /d "%cmd%" /f reg add "%rootMenu%\%key%\%menuName%" /v "Icon" /d "%icon%" /f echo 菜单添加成功
del-右键菜单添加工具
@echo off &title 右键菜单添加工具 REM set "rootMenu=HKEY_CLASSES_ROOT" set "rootMenu=HKCR" REM set "key=*\shell" REM 文件右键菜单 REM set "key=Directory\shell" REM 文件夹右键菜单 REM set "key=DesktopBackground\shell" REM 桌面右键菜单 set "key=Directory\background\shell" REM 背景右键菜单,包含桌面右键菜单 set "menuName=menuName1" call :DelRegByQueryResult "%rootMenu%\%key%\%menuName%" pause exit /b :DelRegByQueryResult reg query %1 >nul 2>&1 if %errorlevel% == 0 ( echo 注册表 %1 存在,准备删除... reg delete %1 /f echo 注册表 %1 已删除。 ) else ( echo 注册表 %1 不存在,无需删除。 ) echo. goto :eof
add-文件夹背景背景右键菜单添加
@echo off setlocal enabledelayedexpansion REM 以管理员权限运行此脚本 if not "%~nx0"=="%~n0.bat" (echo 请以管理员身份运行此脚本 && pause && exit /b) set filepath=%~dp0bin\ pushd %~dp0bin :: 设置注册表路径 set "reg_path=HKLM\SOFTWARE\Classes\Directory\background\shell" set "key_prefix=RightMenu_" for /f "delims=" %%a in ('dir /a-d/b *.bat') do ( if not %%a == %~nx0 ( set "name=%%a" set "key_name_in_menu=!name:~0,-4!" set "key_name_in_reg=!key_prefix!!key_name_in_menu!" set "exe_path=%%~fa" REM 请注意,注册表编辑器(reg.exe)在路径中不支持通配符或某些特殊字符,确保您的变量值符合这些要求。 REM 1.创建键key REM 2.创建键key的命令,由于你设置的是文件夹背景的右键菜单项,%1 将代表用户右键点击的文件夹的路径 reg add "!reg_path!\!key_name_in_reg!" /T REG_SZ /d "!key_name_in_menu!" /f reg add "!reg_path!\!key_name_in_reg!\Command" /T REG_SZ /d "!exe_path! !filepath!" REM reg add "!reg_path!\!key_name_in_reg!\Command" /T REG_SZ /d "\"!exe_path!\" \"%1\"" /f >nul 2>&1 echo Added background menu for !name! ) ) REM 在注册表中启用长路径支持,允许使用超过260个字符的路径 reg add HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\FileSystem /T REG_DWORD /v LongPathsEnabled /d 1 /f popd timeout /t 5 /nobreak exit /b
del-文件夹背景背景右键菜单添加
@echo off setlocal enabledelayedexpansion pushd %~dp0bin :: 设置注册表路径 set "reg_path=HKLM\SOFTWARE\Classes\Directory\background\shell" set "key_prefix=ZhhRightMenu_" for /f "delims=" %%a in ('dir /a-d/b *.bat') do ( if not %%a == %~nx0 ( set name=%%a set key_name_in_reg=!key_prefix!!name:~0,-4! reg delete !reg_path!\!key_name_in_reg! /f echo Delete key: !key_name_in_reg! ) ) REM 删除长路径支持设置(可选) reg delete HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\FileSystem /v LongPathsEnabled /f popd timeout /t 5 /nobreak exit /b
登录
注册