最近在測試軟件,很多軟件都喜歡在右鍵"新建"菜單下添加自己的專用文件格式選項,一圈測試下來,"新建"菜單里臃腫不堪,嚴重影響了右鍵的打開速度。
網上搜索能刪除"新建"項目的軟件,發現ShowNew不能刪除 MS Office 系列的"新建"項目,并且不支持批量刪除;ContextEdit 里轉了半天,找不到刪除的方法——并不是找不到刪除選項,而是跑出來的項目太多,居然不提供搜索功能,想刪除指定項目還得在成百上千個記錄中尋找、定位,太不人性化了。
翻了一下以前寫過的批處理,發現了一個好東西,于是,略做修改,發出來讓大家用用。板磚之類的請盡管飛過來~~~
版本一:把注冊表信息放到與批處理同目錄的RegBackup文件夾下
復制內容到剪貼板
代碼:
@echo off
:: 一般情況下,右鍵"新建"菜單項目對應于注冊表"HKEY_CLASSERS_ROORT/.后綴名"
:: 項目下的"ShellNew"鍵。如果常規模式下刪除不了,則把"HKEY_CLASSERS_ROORT/.后綴名"
:: 刪除掉即可(注意,可能會有后遺癥)。
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
新聞熱點
疑難解答