无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3895|回复: 10
打印 上一主题 下一主题

批处理批量修改注册表

[复制链接]
跳转到指定楼层
1#
发表于 2016-11-20 20:32:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
for /f "delims=-" %%a in ('reg query HKCR') do (for %%b in (Briefcase .contact) do (reg delete "%%a%%b"))
会无限循环报错
请问如何解决

评分

参与人数 1无忧币 -5 收起 理由
277654366 -5

查看全部评分

2#
发表于 2016-11-20 21:32:51 | 只看该作者
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
……
……
……

正常系统里是不会有这些注册表项的,自然无法删除,不会一直报错反而不正常
回复

使用道具 举报

3#
发表于 2016-11-20 21:33:38 | 只看该作者
第二个的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, 下载次数: 75)

1.png
回复

使用道具 举报

4#
 楼主| 发表于 2016-11-21 11:17:33 | 只看该作者
我要给出的指定Briefcase .contact .bmp .jnt .rtf .zip .rar .doc .docx .ppt .pptx .xls .xlsx的项很多

又想以最短的代码解决
回复

使用道具 举报

5#
 楼主| 发表于 2016-11-21 11:37:35 | 只看该作者
我把加了个/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 /?" 了解用法信息。
回复

使用道具 举报

6#
 楼主| 发表于 2016-11-21 11:42:05 | 只看该作者
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 /?" 了解用法信息。
回复

使用道具 举报

7#
 楼主| 发表于 2016-11-21 13:50:36 | 只看该作者
搞定了,其实只要搜索一次就可以,多了就无限循环了,谢谢各位的帮助

点评

发上来看看。。。。。  详情 回复 发表于 2016-11-22 11:42
回复

使用道具 举报

8#
发表于 2016-11-22 11:42:06 | 只看该作者
2011qx 发表于 2016-11-21 13:50
搞定了,其实只要搜索一次就可以,多了就无限循环了,谢谢各位的帮助

发上来看看。。。。。

点评

过几天我会把做好的东西发上来,到时你在里面可以找这个  详情 回复 发表于 2016-11-27 09:34
回复

使用道具 举报

9#
 楼主| 发表于 2016-11-27 09:34:12 | 只看该作者
freesoft00 发表于 2016-11-22 11:42
发上来看看。。。。。

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

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-27 10:34

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表