标题: [注册表类] [已解决]批处理如何删除指定的注册表项? [打印本页]
作者: herjok 时间: 2012-10-18 00:17 标题: [已解决]批处理如何删除指定的注册表项?
- @echo off
- setlocal enabledelayedexpansion
- 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 (
- set "jg=%%a"
- set "jg=!jg: =!"
- set "jg=!jg:REG_=.!"
- for %%b in ("!jg!") do echo reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\%%~nb /f"
- )
- pause
复制代码
以上代码运行后提示系统找不到指定的注册表项或值。请高手指点
作者: apang 时间: 2012-10-18 16:30
第7行的 /f 应该在引号外面
试试这样行不行:- @echo off
- set "v_reg=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace"
- set "v1={11016101-E366-4D22-BC06-4ADA335C892B}"
- set "v2={1f4de370-d627-11d1-ba4f-00a0c91eedba}"
- set "v3={450D8FBA-AD25-11D0-98A8-0800361B1103}"
- set "v4={e17d4fc0-5564-11d1-83f2-00a0c90dc849}"
- for /f "delims=" %%a in ('reg query "%v_reg%"^|find /i "%v_reg%\"') do (
- for %%b in (%v1% %v2% %v3% %v4%) do (
- if /i "%%~nxa"=="%%b" set flag=1
- )
- if defined flag (set "flag=") else echo reg delete "%%a" /f
- )
- pause
复制代码
作者: herjok 时间: 2012-10-18 20:39
本帖最后由 herjok 于 2012-10-18 20:41 编辑
回复 2# apang
运行之后,跟我上面的那一个样。无法删除注册表信息,- reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explor
- r\Desktop\NameSpace\{43DD7B45-59CE-4B4A-ADB3-168E019C3E59}" /f
- reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explor
- r\Desktop\NameSpace\{645FF040-5081-101B-9F08-00AA002F954E}" /f
- reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explor
- r\Desktop\NameSpace\{6D694696-F6AD-4282-83C4-3CD35DBB741B}" /f
- reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explor
- r\Desktop\NameSpace\{E6B5E1DD-8CC1-4EE5-8237-76006DE3DD12}" /f
- 请按任意键继续. . .
复制代码
作者: 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://bathome.net./) |
Powered by Discuz! 7.2 |