上个月想更改右键菜单一些选项,用Regedit太麻烦就写了这个批处理
如果懒得复制可以在底部下载附件解压即可
代码:[Bash shell] 纯文本查看 复制代码 @echo off & chcp 65001 & color 1f
fltmc >nul || echo 请右键批处理以管理员身份运行! && timeout /t 3 /nobreak && exit
:menu
cls & title 右键菜单管理脚本
setlocal enabledelayedexpansion
set /a num=0
set /a value=0
set /a numid=0
set /a delname=0
set /a numback=0
echo ---------------------------------------------------------------------------------------------
echo 最后更新:2025年12月18日 by:沉默酱紫
echo ---------------------------------------------------------------------------------------------
echo 请输入数字使用对应选项:
echo -[1]桌面右键-
echo -[2]文件右键-
echo -[3]文件夹右键-
echo -[4]文件夹背景右键-
echo -[5]磁盘分区右键-
echo -[6].exe文件右键-
echo -[00]退出批处理-
echo ---------------------------------------------------------------------------------------------
set /p num=
if "!num!"=="0" goto :menu
if "!num!"=="1" (
echo 你需要添加或删除右键选项: -[1]添加 [2]删除 [3]打开注册表- 按其他则退出
set /p numid=
if "!numid!"=="0" goto :menu
if "!numid!"=="1" goto :oneadd
if "!numid!"=="2" goto :onedel
if "!numid!"=="3" goto :onereg
exit
)
if "!num!"=="2" (
echo 你需要添加或删除右键选项: -[1]添加 [2]删除 [3]打开注册表- 按其他则退出
set /p numid=
if "!numid!"=="0" goto :menu
if "!numid!"=="1" goto :twoadd
if "!numid!"=="2" goto :twodel
if "!numid!"=="3" goto :tworeg
exit
)
if "!num!"=="3" (
echo 你需要添加或删除右键选项: -[1]添加 [2]删除 [3]打开注册表- 按其他则退出
set /p numid=
if "!numid!"=="0" goto :menu
if "!numid!"=="1" goto :threeadd
if "!numid!"=="2" goto :threedel
if "!numid!"=="3" goto :threereg
exit
)
if "!num!"=="4" (
echo 你需要添加或删除右键选项: -[1]添加 [2]删除 [3]打开注册表- 按其他则退出
set /p numid=
if "!numid!"=="0" goto :menu
if "!numid!"=="1" goto :fouradd
if "!numid!"=="2" goto :fourdel
if "!numid!"=="3" goto :fourreg
exit
)
if "!num!"=="5" (
echo 你需要添加或删除右键选项: -[1]添加 [2]删除 [3]打开注册表- 按其他则退出
set /p numid=
if "!numid!"=="0" goto :menu
if "!numid!"=="1" goto :fiveadd
if "!numid!"=="2" goto :fivedel
if "!numid!"=="3" goto :fivereg
exit
)
if "!num!"=="6" (
echo 你需要添加或删除右键选项: -[1]添加 [2]删除 [3]打开注册表- 按其他则退出
set /p numid=
if "!numid!"=="0" goto :menu
if "!numid!"=="1" goto :sixadd
if "!numid!"=="2" goto :sixdel
if "!numid!"=="3" goto :sixreg
exit
)
if "!num!"=="00" endlocal & exit
goto :menu
rem ==============================================================================================
:oneadd
cls & title 给桌面右键添加选项
echo ---------------------------------------------------------------------------------------------
echo 注册表键的名字:字母数字或组合
set /p keyname=
if not "!keyname!"=="" (
reg add "HKEY_CLASSES_ROOT\DesktopBackground\Shell\!keyname!" /f
) else (
cls & goto :menu
)
echo ---------------------------------------------------------------------------------------------
echo 在右键菜单中显示的名字:
set /p default=
reg add "HKEY_CLASSES_ROOT\DesktopBackground\Shell\!keyname!" /ve /d "!default!" /f
echo ---------------------------------------------------------------------------------------------
echo 选项打开的程序的路径:如c:\xx\xx.exe
set /p route=
reg add "HKEY_CLASSES_ROOT\DesktopBackground\Shell\!keyname!\command" /f
reg add "HKEY_CLASSES_ROOT\DesktopBackground\Shell\!keyname!\command" /ve /d "!route!" /f
echo ---------------------------------------------------------------------------------------------
echo 选项显示的图标的路径:按回车则是打开的程序的图标
set /p ico=
if not "!ico!"=="" (
reg add "HKEY_CLASSES_ROOT\DesktopBackground\Shell\!keyname!" /v icon /t reg_expand_sz /d "!ico!" /f
) else (
reg add "HKEY_CLASSES_ROOT\DesktopBackground\Shell\!keyname!" /v icon /t reg_expand_sz /d "!route!" /f
)
echo ---------------------------------------------------------------------------------------------
echo 已添加完毕,是否继续添加: -[1]继续添加,按其他则返回开头-
set /p numback=
if "!numback!"=="1" (
set /a numback=0
cls & goto :oneadd
) else (
cls & goto :menu
)
exit
:onedel
reg query "HKEY_CLASSES_ROOT\DesktopBackground\Shell"
echo ---------------------------------------------------------------------------------------------
echo 你想删除的键的名字:Shell\后面的值
set /p delname=
if not "!delname!"=="" (
reg delete "HKEY_CLASSES_ROOT\DesktopBackground\Shell\!delname!" /f
echo 已删除!delname! & echo 是否继续删除: -[1]继续删除,按其他则返回开头-
set /p value=
if "!value!"=="1" (
set /a value=0
cls & goto :onedel
) else (
cls & goto :menu
)
) else (
cls & goto :menu
)
exit
:onereg
cd /d c:\windows\
if not exist regjump.exe (
echo HKEY_CLASSES_ROOT\DesktopBackground\Shell\ | clip
echo 已将地址复制到剪切板并为你打开了注册表
regedit
cls & goto :menu
) else (
regjump "HKEY_CLASSES_ROOT\DesktopBackground\Shell"
cls & goto :menu
)
exit
rem ==============================================================================================
:twoadd
cls & title 给文件右键添加选项
echo ---------------------------------------------------------------------------------------------
echo 注册表键的名字:字母数字或组合
set /p keyname=
if not "!keyname!"=="" (
reg add "HKEY_CLASSES_ROOT\*\shell\!keyname!" /f
) else (
cls & goto :menu
)
echo ---------------------------------------------------------------------------------------------
echo 在右键菜单中显示的名字:
set /p default=
reg add "HKEY_CLASSES_ROOT\*\shell\!keyname!" /ve /d "!default!" /f
echo ---------------------------------------------------------------------------------------------
echo 选项打开的程序的路径:如c:\xx\xx.exe
set /p route=
reg add "HKEY_CLASSES_ROOT\*\shell\!keyname!\command" /f
reg add "HKEY_CLASSES_ROOT\*\shell\!keyname!\command" /ve /d "!route!" /f
echo ---------------------------------------------------------------------------------------------
echo 选项显示的图标的路径:按回车则是打开的程序的图标
set /p ico=
if not "!ico!"=="" (
reg add "HKEY_CLASSES_ROOT\*\shell\!keyname!" /v icon /t reg_expand_sz /d "!ico!" /f
) else (
reg add "HKEY_CLASSES_ROOT\*\shell\!keyname!" /v icon /t reg_expand_sz /d "!route!" /f
)
echo ---------------------------------------------------------------------------------------------
echo 已添加完毕,是否继续添加: -[1]继续添加,按其他则返回开头-
set /p numback=
if "!numback!"=="1" (
set /a numback=0
cls & goto :twoadd
) else (
cls & goto :menu
)
exit
:twodel
reg query "HKEY_CLASSES_ROOT\*\shell"
echo ---------------------------------------------------------------------------------------------
echo 你想删除的键的名字:Shell\后面的值
set /p delname=
if not "!delname!"=="" (
reg delete "HKEY_CLASSES_ROOT\*\shell\!delname!" /f
echo 已删除!delname! & echo 是否继续删除: -[1]继续删除,按其他则返回开头-
set /p value=
if "!value!"=="1" (
set /a value=0
cls & goto :twodel
) else (
cls & goto :menu
)
) else (
cls & goto :menu
)
exit
:tworeg
cd /d c:\windows\
if not exist regjump.exe (
echo HKEY_CLASSES_ROOT\*\shell\ | clip
echo 已将地址复制到剪切板并为你打开了注册表
regedit
cls & goto :menu
) else (
regjump "HKEY_CLASSES_ROOT\*\shell"
cls & goto :menu
)
exit
rem ==============================================================================================
:threeadd
cls & title 给文件夹右键添加选项
echo ---------------------------------------------------------------------------------------------
echo 注册表键的名字:字母数字或组合
set /p keyname=
if not "!keyname!"=="" (
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\!keyname!" /f
) else (
cls & goto :menu
)
echo ---------------------------------------------------------------------------------------------
echo 在右键菜单中显示的名字:
set /p default=
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\!keyname!" /ve /d "!default!" /f
echo ---------------------------------------------------------------------------------------------
echo 选项打开的程序的路径:如c:\xx\xx.exe
set /p route=
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\!keyname!\command" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\!keyname!\command" /ve /d "!route!" /f
echo ---------------------------------------------------------------------------------------------
echo 选项显示的图标的路径:按回车则是打开的程序的图标
set /p ico=
if not "!ico!"=="" (
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\!keyname!" /v icon /t reg_expand_sz /d "!ico!" /f
) else (
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\!keyname!" /v icon /t reg_expand_sz /d "!route!" /f
)
echo ---------------------------------------------------------------------------------------------
echo 已添加完毕,是否继续添加: -[1]继续添加,按其他则返回开头-
set /p numback=
if "!numback!"=="1" (
set /a numback=0
cls & goto :threeadd
) else (
cls & goto :menu
)
exit
:threedel
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell"
echo ---------------------------------------------------------------------------------------------
echo 你想删除的键的名字:Shell\后面的值
set /p delname=
if not "!delname!"=="" (
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\!delname!" /f
echo 已删除!delname! & echo 是否继续删除: -[1]继续删除,按其他则返回开头-
set /p value=
if "!value!"=="1" (
set /a value=0
cls & goto :threedel
) else (
cls & goto :menu
)
) else (
cls & goto :menu
)
exit
:threereg
cd /d c:\windows\
if not exist regjump.exe (
echo HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\ | clip
echo 已将地址复制到剪切板并为你打开了注册表
regedit
cls & goto :menu
) else (
regjump "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell"
cls & goto :menu
)
exit
rem ==============================================================================================
:fouradd
cls & title 给文件夹背景右键添加选项
echo ---------------------------------------------------------------------------------------------
echo 注册表键的名字:字母数字或组合
set /p keyname=
if not "!keyname!"=="" (
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\!keyname!" /f
) else (
cls & goto :menu
)
echo ---------------------------------------------------------------------------------------------
echo 在右键菜单中显示的名字:
set /p default=
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\!keyname!" /ve /d "!default!" /f
echo ---------------------------------------------------------------------------------------------
echo 选项打开的程序的路径:如c:\xx\xx.exe
set /p route=
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\!keyname!\command" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\!keyname!\command" /ve /d "!route!" /f
echo ---------------------------------------------------------------------------------------------
echo 选项显示的图标的路径:按回车则是打开的程序的图标
set /p ico=
if not "!ico!"=="" (
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\!keyname!" /v icon /t reg_expand_sz /d "!ico!" /f
) else (
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\!keyname!" /v icon /t reg_expand_sz /d "!route!" /f
)
echo ---------------------------------------------------------------------------------------------
echo 已添加完毕,是否继续添加: -[1]继续添加,按其他则返回开头-
set /p numback=
if "!numback!"=="1" (
set /a numback=0
cls & goto :fouradd
) else (
cls & goto :menu
)
exit
:fourdel
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell"
echo ---------------------------------------------------------------------------------------------
echo 你想删除的键的名字:Shell\后面的值
set /p delname=
if not "!delname!"=="" (
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\!delname!" /f
echo 已删除!delname! & echo 是否继续删除: -[1]继续删除,按其他则返回开头-
set /p value=
if "!value!"=="1" (
set /a value=0
cls & goto :fourdel
) else (
cls & goto :menu
)
) else (
cls & goto :menu
)
exit
:fourreg
cd /d c:\windows\
if not exist regjump.exe (
echo HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\ | clip
echo 已将地址复制到剪切板并为你打开了注册表
regedit
cls & goto :menu
) else (
regjump "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell"
cls & goto :menu
)
exit
rem ==============================================================================================
:fiveadd
cls & title 给磁盘分区右键添加选项
echo ---------------------------------------------------------------------------------------------
echo 注册表键的名字:字母数字或组合
set /p keyname=
if not "!keyname!"=="" (
reg add "HKEY_CLASSES_ROOT\Drive\shell\!keyname!" /f
) else (
cls & goto :menu
)
echo ---------------------------------------------------------------------------------------------
echo 在右键菜单中显示的名字:
set /p default=
reg add "HKEY_CLASSES_ROOT\Drive\shell\!keyname!" /ve /d "!default!" /f
echo ---------------------------------------------------------------------------------------------
echo 选项打开的程序的路径:如c:\xx\xx.exe
set /p route=
reg add "HKEY_CLASSES_ROOT\Drive\shell\!keyname!\command" /f
reg add "HKEY_CLASSES_ROOT\Drive\shell\!keyname!\command" /ve /d "!route!" /f
echo ---------------------------------------------------------------------------------------------
echo 选项显示的图标的路径:按回车则是打开的程序的图标
set /p ico=
if not "!ico!"=="" (
reg add "HKEY_CLASSES_ROOT\Drive\shell\!keyname!" /v icon /t reg_expand_sz /d "!ico!" /f
) else (
reg add "HKEY_CLASSES_ROOT\Drive\shell\!keyname!" /v icon /t reg_expand_sz /d "!route!" /f
)
echo ---------------------------------------------------------------------------------------------
echo 已添加完毕,是否继续添加: -[1]继续添加,按其他则返回开头-
set /p numback=
if "!numback!"=="1" (
set /a numback=0
cls & goto :fiveadd
) else (
cls & goto :menu
)
exit
:fivedel
reg query "HKEY_CLASSES_ROOT\Drive\shell"
echo ---------------------------------------------------------------------------------------------
echo 你想删除的键的名字:Shell\后面的值
set /p delname=
if not "!delname!"=="" (
reg delete "HKEY_CLASSES_ROOT\Drive\shell\!delname!" /f
echo 已删除!delname! & echo 是否继续删除: -[1]继续删除,按其他则返回开头-
set /p value=
if "!value!"=="1" (
set /a value=0
cls & goto :fivedel
) else (
cls & goto :menu
)
) else (
cls & goto :menu
)
exit
:fivereg
cd /d c:\windows\
if not exist regjump.exe (
echo HKEY_CLASSES_ROOT\Drive\shell\ | clip
echo 已将地址复制到剪切板并为你打开了注册表
regedit
cls & goto :menu
) else (
regjump "HKEY_CLASSES_ROOT\Drive\shell"
cls & goto :menu
)
exit
rem ==============================================================================================
:sixadd
cls & title 给.exe文件右键添加选项
echo ---------------------------------------------------------------------------------------------
echo 注册表键的名字:字母数字或组合
set /p keyname=
if not "!keyname!"=="" (
reg add "HKEY_CLASSES_ROOT\SystemFileAssociations\.exe\shell\!keyname!" /f
) else (
cls & goto :menu
)
echo ---------------------------------------------------------------------------------------------
echo 在右键菜单中显示的名字:
set /p default=
reg add "HKEY_CLASSES_ROOT\SystemFileAssociations\.exe\shell\!keyname!" /ve /d "!default!" /f
echo ---------------------------------------------------------------------------------------------
echo 选项打开的程序的路径:如c:\xx\xx.exe
set /p route=
reg add "HKEY_CLASSES_ROOT\SystemFileAssociations\.exe\shell\!keyname!\command" /f
reg add "HKEY_CLASSES_ROOT\SystemFileAssociations\.exe\shell\!keyname!\command" /ve /d "!route!" /f
echo ---------------------------------------------------------------------------------------------
echo 选项显示的图标的路径:按回车则是打开的程序的图标
set /p ico=
if not "!ico!"=="" (
reg add "HKEY_CLASSES_ROOT\SystemFileAssociations\.exe\shell\!keyname!" /v icon /t reg_expand_sz /d "!ico!" /f
) else (
reg add "HKEY_CLASSES_ROOT\SystemFileAssociations\.exe\shell\!keyname!" /v icon /t reg_expand_sz /d "!route!" /f
)
echo ---------------------------------------------------------------------------------------------
echo 已添加完毕,是否继续添加: -[1]继续添加,按其他则返回开头-
set /p numback=
if "!numback!"=="1" (
set /a numback=0
cls & goto :sixadd
) else (
cls & goto :menu
)
exit
:sixdel
reg query "HKEY_CLASSES_ROOT\SystemFileAssociations\.exe\shell"
echo ---------------------------------------------------------------------------------------------
echo 你想删除的键的名字:Shell\后面的值
set /p delname=
if not "!delname!"=="" (
reg delete "HKEY_CLASSES_ROOT\SystemFileAssociations\.exe\shell\!delname!" /f
echo 已删除!delname! & echo 是否继续删除: -[1]继续删除,按其他则返回开头-
set /p value=
if "!value!"=="1" (
set /a value=0
cls & goto :sixdel
) else (
cls & goto :menu
)
) else (
cls & goto :menu
)
exit
:sixreg
cd /d c:\windows\
if not exist regjump.exe (
echo HKEY_CLASSES_ROOT\SystemFileAssociations\.exe\shell\ | clip
echo 已将地址复制到剪切板并为你打开了注册表
regedit
cls & goto :menu
) else (
regjump "HKEY_CLASSES_ROOT\SystemFileAssociations\.exe\shell"
cls & goto :menu
)
exit
rem ==============================================================================================
解压密码是52pojie
右键选项.zip
(2.02 KB, 下载次数: 92)
|