无忧启动论坛

标题: 批处理批量修改注册表 [打印本页]

作者: 2011qx    时间: 2016-11-20 20:32
标题: 批处理批量修改注册表
for /f "delims=-" %%a in ('reg query HKCR') do (for %%b in (Briefcase .contact) do (reg delete "%%a%%b"))
会无限循环报错
请问如何解决
作者: nttwqz    时间: 2016-11-20 21:32
reg query HKCR是查询整个HKCR,有大量子项,%%a就是下面这些了,而%%b就是Briefcase和.contact

HKEY_CLASSES_ROOT\*
HKEY_CLASSES_ROOT\.001
HKEY_CLASSES_ROOT\.032
HKEY_CLASSES_ROOT\.386
HKEY_CLASSES_ROOT\.3fr
HKEY_CLASSES_ROOT\.3g2
HKEY_CLASSES_ROOT\.3gp
HKEY_CLASSES_ROOT\.3gp2

组合起来%%a%%b就是
HKEY_CLASSES_ROOT\*Briefcase
HKEY_CLASSES_ROOT\*.contact
HKEY_CLASSES_ROOT\.001Briefcase
HKEY_CLASSES_ROOT\.032.contact
……
……
……

正常系统里是不会有这些注册表项的,自然无法删除,不会一直报错反而不正常
作者: 不知    时间: 2016-11-20 21:33
第二个的for用法有问题。
尝试这段代码:
@echo off
rem 设定注册表查询键名
set root=HKCR
rem 设定查询条件(包含的字符)
set condition=.contact
for /f %%i in ('reg query %root%')do call :run %%i
goto EOF

:run
echo %1 | find /I "%condition%"
if %errorlevel%==0 (
rem 设定对符合条件的目标的处理(参数 %1)
reg delete %1
)
:EOF

1.png (6.81 KB, 下载次数: 74)

1.png

作者: 2011qx    时间: 2016-11-21 11:17
我要给出的指定Briefcase .contact .bmp .jnt .rtf .zip .rar .doc .docx .ppt .pptx .xls .xlsx的项很多

又想以最短的代码解决
作者: 2011qx    时间: 2016-11-21 11:37
我把加了个/ve 不会出现

HKEY_CLASSES_ROOT\*Briefcase
HKEY_CLASSES_ROOT\*.contact
HKEY_CLASSES_ROOT\.001Briefcase
HKEY_CLASSES_ROOT\.032.contact

却出现了
C:\Users\Administrator\Desktop>(reg delete "    (默认)    REG_SZ    (数值未设置)\Briefcase" )
错误: 无效项名。
键入 "REG DELETE /?" 了解用法信息。
作者: 2011qx    时间: 2016-11-21 11:42
for /f "delims=" %%a in ('reg query HKCR /ve') do (for %%b in (Briefcase .contact .bmp .jnt .rtf .zip .rar .doc .docx .ppt .pptx .xls .xlsx) do (reg delete "%%a\%%b"))
第2段FOR是没错的,就看第1段如何改
是修改FOR命令还是REG QUERY命令
这段代码运行到最后就出现了
C:\Users\Administrator\Desktop>(reg delete "HKEY_CLASSES_ROOT\.xlsx" )
要永久性删除注册表项 HKEY_CLASSES_ROOT\.xlsx 吗(Yes/No)? n
操作已被用户取消。

C:\Users\Administrator\Desktop>(for %b in (Briefcase .contact .bmp .jnt .rtf .zip .rar .doc .docx .ppt .pptx .xls .xlsx) do (reg delete "    (默认)    REG_SZ    (数值未设置)\%b" ) )

C:\Users\Administrator\Desktop>(reg delete "    (默认)    REG_SZ    (数值未设置)\Briefcase" )
错误: 无效项名。
键入 "REG DELETE /?" 了解用法信息。
作者: 2011qx    时间: 2016-11-21 13:50
搞定了,其实只要搜索一次就可以,多了就无限循环了,谢谢各位的帮助
作者: freesoft00    时间: 2016-11-22 11:42
2011qx 发表于 2016-11-21 13:50
搞定了,其实只要搜索一次就可以,多了就无限循环了,谢谢各位的帮助

发上来看看。。。。。
作者: 2011qx    时间: 2016-11-27 09:34
freesoft00 发表于 2016-11-22 11:42
发上来看看。。。。。

过几天我会把做好的东西发上来,到时你在里面可以找这个




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net./) Powered by Discuz! X3.3