标题: [注册表类] 批处理如何删除注册表一个动态的项?(已解决) [打印本页]
作者: fanle1314 时间: 2011-1-13 06:30 标题: 批处理如何删除注册表一个动态的项?(已解决)
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{77B588D8-2A5B-44FC-9944-32880EEE3DAA}]
@="HintBrowseA"
这是现在的完整路径。但电脑一重启{77B588D8-2A5B-44FC-9944-32880EEE3DAA}这个项就会变了
@="HintBrowseA"这个不会变,要怎么样利用这个值来删除项
[ 本帖最后由 fanle1314 于 2011-1-15 01:29 编辑 ]
作者: tmplinshi 时间: 2011-1-13 08:38
要查询的数据量挺大的。
我这里导出 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\ 有 2490 项,如果导出所有子项和值,文本大小是 1.4 MB。
有两种查询方法,一是从 2490 项中,逐个用 reg.exe 再查询;二是导出所有子项和值,再查询。
建议搜索一下注册表,看有没有其他位置有 {77B588D8-2A5B-44FC-9944-32880EEE3DAA}。
作者: hanyeguxing 时间: 2011-1-13 08:44 标题: 回复 2楼 的帖子
估计是在 Software\Microsoft\Windows\CurrentVersion\Ext\Stats 下。。。
作者: tmplinshi 时间: 2011-1-13 15:48
- @echo off
- SetLocal EnableDelayedExpansion
- set FullKey=HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
- set TempFile="%temp%\CLSID.reg"
-
- echo 正在导出 CLSID 下所有子项和值...
- reg query %FullKey% /s >%TempFile%
-
- echo 正在搜索...
- for /f "delims=:" %%a in ('findstr /nie HintBrowseA %TempFile%') do (
- set /a #Line# = %%a - 1
- set Command="findstr /n .* %TempFile% | findstr /b !#Line#!:"
- for /f "tokens=1,* delims=:" %%b in (' !Command! ') do (
- reg delete %%c /f >nul
- echo 删除成功!
- )
- ) 2>nul
-
- if not defined #Line# echo 没有找到
-
- del %TempFile%
- echo 按任意键退出...
- pause >nul
复制代码
作者: fanle1314 时间: 2011-1-14 01:52
原帖由 tmplinshi 于 2011-1-13 15:48 发表
@echo off
SetLocal EnableDelayedExpansion
set FullKey=HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
set TempFile="%temp%\CLSID.reg"
echo 正在导出 CLSID 下所有子项和值...
reg query %FullKey% /s >%Te ...
谢谢,问题已经解决
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |