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

[注册表类] 批处理BAT如何删除注册表阿拉伯数字的项?

如图,就是想删除HKCU\Software\DownloadManager 下的阿拉伯数字项(它是随机的,也不知道会不会上三位数目前还没发现),其它不要删除。
这些数字项其实是IDM的下载痕迹。我现在就用很笨的导入注册表的方法,删除整项,再重新导入没有阿拉伯数字的项。
我知道你们肯定有办法的,这儿多高手。谢谢!

  1. @echo off
  2. set "s=HKCU\Software\DownloadManager"
  3. for /f "delims=" %%a in ('reg query "%s%"') do (
  4.     for /f "tokens=*delims=0123456789" %%b in ("%%~nxa") do (
  5.         if "%%b" == "" echo,reg delete "%%a" /f
  6.     )
  7. )
  8. pause
复制代码
  1. @echo off
  2. set "s=HKEY_CURRENT_USER\Software\DownloadManager"
  3. set "re=%s:\=\\%\\[0-9][0-9]*"
  4. for /f "delims=" %%a in ('reg query "%s%"^|findstr /ire %re%') do (
  5.     echo,reg delete "%%a" /f
  6. )
  7. pause
复制代码

TOP

本帖最后由 CrLf 于 2014-6-4 18:20 编辑

回复 2# apang


    tokens 为空是不会执行的哟,局部修改:
  1. for /f "delims=0123456789" %%b in ("#%%~nxa") do (
  2.     if "%%b" == "#" echo,reg delete "%%a" /f
  3. )
复制代码

TOP

回复 3# CrLf


    tokens=* 可以呀,没问题

TOP

回复 4# apang

你好,你给的两条代码都试了,DOC屏幕显示正确,但是不知道为什么注册表的项没删除。不知道为什么。我重新又以管理员运行分别运行过,也是不行。同样的结果。
巡查员先生给的没显示DOC屏幕,就按任意键结束,同样也是删除不了。
重启电脑之后发现那几个数字项还是在。 本人WIN7。 求再解答一下。 谢谢!

TOP

上图片

TOP

回复 6# Heykuz


    用第2个代码吧,图片列出的第一个是错误的。
把第5行的 echo,删掉

TOP

回复 4# apang


    本机测试是没显示的,xp 环境:
  1. for /f "tokens=*" %%a in ("") do echo 此行不显示
复制代码

TOP

回复 8# CrLf
  1. for /f "tokens=* delims=1" %%a in ("1") do echo "%%a"
复制代码
do后面的语句确实执行了,把%%a赋值为空
就题解题,reg query 得到的值,再以\截取最后一列,好像不太可能为空值吧
1

评分人数

    • CrLf: 感谢指点!技术 + 1

TOP

本帖最后由 Heykuz 于 2014-6-5 09:36 编辑

回复 7# apang


    测试完毕,完全正确删除了。 大大的感谢apang 。谢谢谢谢,
    同时也谢谢巡查员不忘讨论。

TOP

回复 9# apang


    哇擦,原来那是是 "" 为空造成的...没注意过 tokens=* 和 tokens=1 还有此差异,感谢指点!

TOP

返回列表