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

[注册表类] [已解决]批处理如何删除指定的注册表项?

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "skip=4 tokens=*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace" ^|find/v "{11016101-E366-4D22-BC06-4ADA335C892B}"^|find/v "{1f4de370-d627-11d1-ba4f-00a0c91eedba}"^|find/v "{450D8FBA-AD25-11D0-98A8-0800361B1103}"^|find/v "{e17d4fc0-5564-11d1-83f2-00a0c90dc849}"') do (
  4. set "jg=%%a"
  5. set "jg=!jg: =!"
  6. set "jg=!jg:REG_=.!"
  7. for %%b in ("!jg!") do echo reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\%%~nb /f"
  8. )
  9. pause
复制代码
以上代码运行后提示系统找不到指定的注册表项或值。请高手指点
1

评分人数

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

第7行的 /f 应该在引号外面
试试这样行不行:
  1. @echo off
  2. set "v_reg=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace"
  3. set "v1={11016101-E366-4D22-BC06-4ADA335C892B}"
  4. set "v2={1f4de370-d627-11d1-ba4f-00a0c91eedba}"
  5. set "v3={450D8FBA-AD25-11D0-98A8-0800361B1103}"
  6. set "v4={e17d4fc0-5564-11d1-83f2-00a0c90dc849}"
  7. for /f "delims=" %%a in ('reg query "%v_reg%"^|find /i "%v_reg%\"') do (
  8.   for %%b in (%v1% %v2% %v3% %v4%) do (
  9.     if /i "%%~nxa"=="%%b" set flag=1
  10.   )
  11.   if defined flag (set "flag=") else echo reg delete "%%a" /f
  12. )
  13. pause
复制代码
1

评分人数

TOP

本帖最后由 herjok 于 2012-10-18 20:41 编辑

回复 2# apang


    运行之后,跟我上面的那一个样。无法删除注册表信息,
  1. reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explor
  2. r\Desktop\NameSpace\{43DD7B45-59CE-4B4A-ADB3-168E019C3E59}" /f
  3. reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explor
  4. r\Desktop\NameSpace\{645FF040-5081-101B-9F08-00AA002F954E}" /f
  5. reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explor
  6. r\Desktop\NameSpace\{6D694696-F6AD-4282-83C4-3CD35DBB741B}" /f
  7. reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explor
  8. r\Desktop\NameSpace\{E6B5E1DD-8CC1-4EE5-8237-76006DE3DD12}" /f
  9. 请按任意键继续. . .
复制代码

TOP

本帖最后由 apang 于 2012-10-18 20:55 编辑

回复 3# herjok


    呵呵,跟您的不一样呢,您的是 /f"   我的是 /f
找找代码中的reg delete前面的echo字串,将它删除,就可以真正删除注册表项啦。。。注册表操作前请先备份,您知道的。。。

TOP

回复 4# apang


    谢谢大校,以解决了!哦对了,大校有什么办法用BAT刷新桌面吗?我参考了下网上面刷新桌面的BAT,缺陷太大,不太理想

TOP

回复 5# herjok


RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
gpupdate /force /wait:6

TOP

回复 6# duyang12003


    谢谢03,您得这种方式我试过,缺陷太大,不太理想!不知您还有没有更好方法!

TOP

求分享你的成功经验

TOP

返回列表