最近在测试软件,很多软件都喜欢在右键"新建"菜单下添加自己的专用文件格式选项,一圈测试下来,"新建"菜单里臃肿不堪,严重影响了右键的打开速度。
网上搜索能删除"新建"项目的软件,发现ShowNew不能删除 MS Office 系列的"新建"项目,并且不支持批量删除;ContextEdit 里转了半天,找不到删除的方法——并不是找不到删除选项,而是跑出来的项目太多,居然不提供搜索功能,想删除指定项目还得在成百上千个记录中寻找、定位,太不人性化了。
翻了一下以前写过的批处理,发现了一个好东西,于是,略做修改,发出来让大家用用。板砖之类的请尽管飞过来~~~
版本一:把注册表信息放到与批处理同目录的RegBackup文件夹下- @echo off
- :: 一般情况下,右键"新建"菜单项目对应于注册表"HKEY_CLASSERS_ROORT\.后缀名"
- :: 项目下的"ShellNew"键。如果常规模式下删除不了,则把"HKEY_CLASSERS_ROORT\.后缀名"
- :: 删除掉即可(注意,可能会有后遗症)。
- :: Code by namejm Modified on 2007.9.29~2008.3.17 CMD@XP
- mode con lines=25
- color 1f
-
- :Main
- cls
- title "新建"菜单项目删除器-删除模式
- echo.&echo.&echo.
- echo 本程序能删除右键菜单中"新建"项目下的多余内容,为"新建"菜单减肥!
- echo.
- echo 如果想让某种类型的文件不再出现在鼠标右键的"新建"菜单中,请直接
- echo.
- echo 输入该文件类型的后缀名。例如:rar。默认使用常规删除模式。
- echo.
- echo 如果常规删除不起作用,请使用强行删除模式,比如在对付 MS Office
- echo.
- echo 系列软件在"新建"菜单中的项目的时候。不过,此方式可能会产生后遗症。
- echo.
- echo 注意:需要点开"新建"菜单两次才能看到删除后的变化!
- echo.&echo.
- echo 退出请选 0 使用强行删除模式请在最前面添加 1 恢复菜单项目请按 2
- echo.&echo.
- echo 请输入后缀名(多个后缀名用空格分开):
- echo.
- set input=
- set /p input=
- if not defined input goto Main
- set "input=%input:"=%"
- if "%input%"=="0" exit
- set ShellNew=ShellNew
- if "%input:~0,1%"=="1" (
- set ShellNew=
- set "input=%input:~1%"
- )
- if "%input%"=="2" goto Repair
- md RegBackup 2>nul
- for %%i in (%input%) do (
- reg export HKCR\.%%i\%ShellNew% RegBackup\_%%i.reg>nul 2>nul
- if exist RegBackup\_%%i.reg (
- more RegBackup\_%%i.reg>RegBackup\%%i.reg
- echo ; 这是鼠标右键"新建"菜单项目 .%%i 类型的注册表信息,可作恢复之用>>RegBackup\%%i.reg
- del /a /f RegBackup\_%%i.reg>nul 2>nul
- reg delete HKCR\.%%i\%ShellNew% /f >nul 2>nul
- ) else (echo.&echo %%i 类型没有可供删除的"新建"项目)
- )
- rd RegBackup 2>nul
- echo.&set /p= 按任意键返回...
- goto Main
-
- :Repair
- cls
- title "新建"菜单项目删除器-恢复模式
- echo.&echo.&echo.
- echo 本模块只能恢复由本程序删除的右键"新建"菜单项目!
- echo.
- echo 如果想让某种类型的文件重新出现在鼠标右键的"新建"
- echo.
- echo 菜单中,请直接输入该文件类型的后缀名。例如:rar。
- echo.
- echo 注意:需要点开"新建"菜单两次才能看到恢复后的变化!
- echo.&echo.
- echo 退出请选 0 返回删除界面请按 1
- echo.&echo.
- echo 请输入后缀名(多个后缀名用空格分开):
- echo.
- set input=
- set /p input=
- if not defined input goto Repair
- set "input=%input:"=%"
- if "%input%"=="0" exit
- if "%input%"=="1" goto Main
- if not exist RegBackup (
- echo.&echo 没有可恢复的项目,恢复失败!按任意键返回...
- pause>nul&goto Main
- )
- for %%i in (%input%) do (
- reg import RegBackup\%%i.reg>nul 2>nul||(
- echo.&echo .%%i 类型恢复失败
- )
- )
- echo.&set /p= 按任意键返回...
- goto Repair
复制代码 版本二:把注册表信息写回注册表,不再保存在当前目录下- @echo off
- :: 一般情况下,右键"新建"菜单项目对应于注册表"HKEY_CLASSERS_ROORT\.后缀名"
- :: 项目下的"ShellNew"键。如果常规模式下删除不了,则把"HKEY_CLASSERS_ROORT\.后缀名"
- :: 删除掉即可(注意,可能会有后遗症)。
- :: Code by namejm Modified on 2007.9.29~2008.3.17 CMD@XP
- mode con lines=25
- color 1f
-
- :Main
- cls
- title "新建"菜单项目删除器-删除模式
- echo.&echo.&echo.
- echo 本程序能删除右键菜单中"新建"项目下的多余内容,为"新建"菜单减肥!
- echo.
- echo 如果想让某种类型的文件不再出现在鼠标右键的"新建"菜单中,请直接
- echo.
- echo 输入该文件类型的后缀名。例如:rar。默认使用常规删除模式。
- echo.
- echo 如果常规删除不起作用,请使用强行删除模式,比如在对付 MS Office
- echo.
- echo 系列软件在"新建"菜单中的项目的时候。不过,此方式可能会产生后遗症。
- echo.
- echo 注意:需要点开"新建"菜单两次才能看到删除后的变化!
- echo.&echo.
- echo 退出请选 0 使用强行删除模式请在最前面添加 1 恢复菜单项目请按 2
- echo.&echo.
- echo 请输入后缀名(多个后缀名用空格分开):
- echo.
- set input=
- set /p input=
- if not defined input goto Main
- set "input=%input:"=%"
- if "%input%"=="0" exit
- set ShellNew=ShellNew
- if "%input:~0,1%"=="1" (
- set ShellNew=
- set "input=%input:~1%"
- )
- if "%input%"=="2" goto Repair
- for %%i in (%input%) do (
- reg query HKCR\.%%i\%ShellNew%>nul 2>nul && (
- reg copy HKCR\.%%i\%ShellNew% HKCR\-.%%i\%ShellNew% /f /s >nul 2>nul
- reg delete HKCR\.%%i\%ShellNew% /f >nul 2>nul
- ) || (echo.&echo %%i 类型没有可供删除的"新建"项目)
- )
- echo.&set /p= 按任意键返回...
- goto Main
- :Repair
- cls
- title "新建"菜单项目删除器-恢复模式
- echo.&echo.&echo.
- echo 本模块只能恢复由本程序删除的右键"新建"菜单项目!
- echo.
- echo 如果想让某种类型的文件重新出现在鼠标右键的"新建"
- echo.
- echo 菜单中,请直接输入该文件类型的后缀名。例如:rar。
- echo.
- echo 注意:需要点开"新建"菜单两次才能看到恢复后的变化!
- echo.&echo.
- echo 退出请选 0 返回删除界面请按 1
- echo.&echo.
- echo 请输入后缀名(多个后缀名用空格分开):
- echo.
- set input=
- set /p input=
- if not defined input goto Repair
- set "input=%input:"=%"
- if "%input%"=="0" exit
- if "%input%"=="1" goto Main
- for %%i in (%input%) do (
- reg query HKCR\-.%%i\>nul 2>nul && (
- reg copy HKCR\-.%%i HKCR\.%%i /f /s >nul 2>nul
- reg delete HKCR\-.%%i /f>nul 2>nul
- ) || (
- echo.&echo 没有可供恢复的 .%%i 类型注册表信息
- )
- )
- echo.&set /p= 按任意键返回...
- goto Repair
复制代码 更新历史:
2008.3.17 修正了一处错误,使得强制删除 MS Office 系列的新建项目不再出错;
2008.3.9 增添了一个新版本,新版本代码不再把注册表信息保存在当前目录下,而是写回注册表中;
2008.3.8 增添了恢复"新建"菜单中指定项目的功能,并精简了代码;
2007.11.17 发布初始版本 |