设为首页 | 收藏本页
登陆您的帐号 | 免费注册帐号
全部栏目 > 计算机 > 互联网络 > 接入服务
下一篇上一篇 首页图文展示(无图)

删除右键新建菜单中的多余项目

发布人:hy58
发布日期:2015-06-06 09:47:00
刷新日期:2015-06-06 09:47:00
回复或评论:0
阅览:664
最近在测试软件,很多软件都喜欢在右键"新建"菜单下添加自己的专用文件格式选项,一圈测试下来,"新建"菜单里臃肿不堪,严重影响了右键的打开速度。   
      网上搜索能删除"新建"项目的软件,发现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   
评论(0) 暂无回帖


打印 收藏 关闭窗口 下一篇上一篇