[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[注册表类] 批处理如何删除注册表一个动态的项?(已解决)

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{77B588D8-2A5B-44FC-9944-32880EEE3DAA}]
@="HintBrowseA"


这是现在的完整路径。但电脑一重启{77B588D8-2A5B-44FC-9944-32880EEE3DAA}这个项就会变了


@="HintBrowseA"这个不会变,要怎么样利用这个值来删除项

[ 本帖最后由 fanle1314 于 2011-1-15 01:29 编辑 ]
1

评分人数

    • hanyeguxing: 感谢给帖子标题标注[已解决]字样PB + 2

原帖由 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 ...



谢谢,问题已经解决

TOP

  1. @echo off
  2. SetLocal EnableDelayedExpansion
  3. set FullKey=HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
  4. set TempFile="%temp%\CLSID.reg"
  5. echo 正在导出 CLSID 下所有子项和值...
  6. reg query %FullKey% /s >%TempFile%
  7. echo 正在搜索...
  8. for /f "delims=:" %%a in ('findstr /nie HintBrowseA %TempFile%') do (
  9.     set /a #Line# = %%a - 1
  10.     set Command="findstr /n .* %TempFile% | findstr /b !#Line#!:"
  11.     for /f "tokens=1,* delims=:" %%b in (' !Command! ') do (
  12.         reg delete %%c /f >nul
  13.         echo 删除成功!
  14.     )
  15. ) 2>nul
  16. if not defined #Line# echo 没有找到
  17. del %TempFile%
  18. echo 按任意键退出...
  19. pause >nul
复制代码
1

评分人数

TOP

回复 2楼 的帖子

估计是在 Software\Microsoft\Windows\CurrentVersion\Ext\Stats 下。。。
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

要查询的数据量挺大的。
我这里导出 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\ 有 2490 项,如果导出所有子项和值,文本大小是 1.4 MB。

有两种查询方法,一是从 2490 项中,逐个用 reg.exe 再查询;二是导出所有子项和值,再查询。

建议搜索一下注册表,看有没有其他位置有 {77B588D8-2A5B-44FC-9944-32880EEE3DAA}。

TOP

返回列表