标题: [注册表类] 批处理BAT如何删除注册表阿拉伯数字的项? [打印本页]
作者: Heykuz 时间: 2014-6-4 13:01 标题: 批处理BAT如何删除注册表阿拉伯数字的项?
如图,就是想删除HKCU\Software\DownloadManager 下的阿拉伯数字项(它是随机的,也不知道会不会上三位数目前还没发现),其它不要删除。
这些数字项其实是IDM的下载痕迹。我现在就用很笨的导入注册表的方法,删除整项,再重新导入没有阿拉伯数字的项。
我知道你们肯定有办法的,这儿多高手。谢谢!
作者: apang 时间: 2014-6-4 17:48
- @echo off
- set "s=HKCU\Software\DownloadManager"
- for /f "delims=" %%a in ('reg query "%s%"') do (
- for /f "tokens=*delims=0123456789" %%b in ("%%~nxa") do (
- if "%%b" == "" echo,reg delete "%%a" /f
- )
- )
- pause
复制代码
- @echo off
- set "s=HKEY_CURRENT_USER\Software\DownloadManager"
- set "re=%s:\=\\%\\[0-9][0-9]*"
- for /f "delims=" %%a in ('reg query "%s%"^|findstr /ire %re%') do (
- echo,reg delete "%%a" /f
- )
- pause
复制代码
作者: CrLf 时间: 2014-6-4 18:19
本帖最后由 CrLf 于 2014-6-4 18:20 编辑
回复 2# apang
tokens 为空是不会执行的哟,局部修改:- for /f "delims=0123456789" %%b in ("#%%~nxa") do (
- if "%%b" == "#" echo,reg delete "%%a" /f
- )
复制代码
作者: apang 时间: 2014-6-4 20:45
回复 3# CrLf
tokens=* 可以呀,没问题
作者: Heykuz 时间: 2014-6-4 21:42
回复 4# apang
你好,你给的两条代码都试了,DOC屏幕显示正确,但是不知道为什么注册表的项没删除。不知道为什么。我重新又以管理员运行分别运行过,也是不行。同样的结果。
巡查员先生给的没显示DOC屏幕,就按任意键结束,同样也是删除不了。
重启电脑之后发现那几个数字项还是在。 本人WIN7。 求再解答一下。 谢谢!
作者: Heykuz 时间: 2014-6-4 21:44
上图片
作者: apang 时间: 2014-6-4 22:30
回复 6# Heykuz
用第2个代码吧,图片列出的第一个是错误的。
把第5行的 echo,删掉
作者: CrLf 时间: 2014-6-5 00:49
回复 4# apang
本机测试是没显示的,xp 环境:- for /f "tokens=*" %%a in ("") do echo 此行不显示
复制代码
作者: apang 时间: 2014-6-5 09:22
回复 8# CrLf - for /f "tokens=* delims=1" %%a in ("1") do echo "%%a"
复制代码
do后面的语句确实执行了,把%%a赋值为空
就题解题,reg query 得到的值,再以\截取最后一列,好像不太可能为空值吧
作者: Heykuz 时间: 2014-6-5 09:35
本帖最后由 Heykuz 于 2014-6-5 09:36 编辑
回复 7# apang
测试完毕,完全正确删除了。 大大的感谢apang 。谢谢谢谢,
同时也谢谢巡查员不忘讨论。
作者: CrLf 时间: 2014-6-5 09:36
回复 9# apang
哇擦,原来那是是 "" 为空造成的...没注意过 tokens=* 和 tokens=1 还有此差异,感谢指点!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |