Board logo

标题: [注册表类] [已解决]批处理如何删除指定的注册表项? [打印本页]

作者: herjok    时间: 2012-10-18 00:17     标题: [已解决]批处理如何删除指定的注册表项?

  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
复制代码
以上代码运行后提示系统找不到指定的注册表项或值。请高手指点
作者: apang    时间: 2012-10-18 16:30

第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
复制代码

作者: herjok    时间: 2012-10-18 20:39

本帖最后由 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. 请按任意键继续. . .
复制代码

作者: apang    时间: 2012-10-18 20:53

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

回复 3# herjok


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

回复 4# apang


    谢谢大校,以解决了!哦对了,大校有什么办法用BAT刷新桌面吗?我参考了下网上面刷新桌面的BAT,缺陷太大,不太理想
作者: duyang12003    时间: 2012-10-19 19:35

回复 5# herjok


RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
gpupdate /force /wait:6
作者: herjok    时间: 2012-10-20 12:48

回复 6# duyang12003


    谢谢03,您得这种方式我试过,缺陷太大,不太理想!不知您还有没有更好方法!
作者: finiiy    时间: 2012-11-19 20:33

求分享你的成功经验




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2