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
复制代码
来源:豆瓜网用户自行投稿发布,如果侵权,请联系站长删除 |