找回密码
 立即注册
首页 业界区 业界 01-右键菜单添加删除工具

01-右键菜单添加删除工具

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

来源:豆瓜网用户自行投稿发布,如果侵权,请联系站长删除

相关推荐

您需要登录后才可以回帖 登录 | 立即注册