无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 343|回复: 29

[已解决] 注册表项支持通配符吗?

[复制链接]
发表于 前天 15:38 | 显示全部楼层 |阅读模式
本帖最后由 zhoubin 于 2026-2-28 20:10 编辑
  1. reg delete "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\FlashUtil64_34_0_0_372_ActiveX.exe" /f
  2. reg delete "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\FlashUtil32_34_0_0_372_ActiveX.exe" /f
复制代码
代码中的
  1. FlashUtil64_34_0_0_372_ActiveX.exe
复制代码
  1. FlashUtil32_34_0_0_372_ActiveX.exe
复制代码
  1. FlashUtil*_*_ActiveX.exe
复制代码
代替,批处理怎么写,求教高手,谢谢!!

5、7、9、20、27楼的代码都可以用,谢谢各位坛友!!
发表于 前天 15:51 | 显示全部楼层
Windows注册表,大概属性于是Windows操作系统核心,觉得拥有吗?
回复

使用道具 举报

发表于 前天 16:00 | 显示全部楼层
注册表不支持通配符
回复

使用道具 举报

 楼主| 发表于 前天 16:05 | 显示全部楼层
感谢提醒,我就想知道,批处理有没有变通的方法,谢谢回复,谢谢
回复

使用道具 举报

发表于 前天 16:57 | 显示全部楼层
@echo off
setlocal enabledelayedexpansion

for /f "tokens=1 delims=" %%i in ('reg query "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options"') do (
  echo %%i | find /i "FlashUtil" >nul && echo %%i | find /i "_ActiveX.exe" >nul && reg delete "%%i" /f
)

点评

助人为乐  发表于 前天 17:15
谢谢,你这个可以用,谢谢了!!  详情 回复 发表于 前天 17:15

评分

参与人数 2无忧币 +10 收起 理由
zhoubin + 5 厉害了,谢谢!
yyz2191958 + 5

查看全部评分

回复

使用道具 举报

 楼主| 发表于 前天 17:15 | 显示全部楼层
hua_wuxin 发表于 2026-2-27 16:57
@echo off
setlocal enabledelayedexpansion

谢谢,你这个可以用,谢谢了!!
回复

使用道具 举报

发表于 前天 17:28 | 显示全部楼层
reg query "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" /f "FlashUtil*ActiveX.exe" /k

点评

不好意思,我是菜鸟,我要把找到的这两个注册表项,删掉,批处理我不会写呢,谢谢您!  详情 回复 发表于 前天 17:47

评分

参与人数 1无忧币 +5 收起 理由
zhoubin + 5 很给力!谢谢!!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 前天 17:47 | 显示全部楼层
dos时代菜鸟 发表于 2026-2-27 17:28
reg query "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Option ...

不好意思,我是菜鸟,我要把找到的这两个注册表项,删掉,批处理我不会写呢,谢谢您!

点评

7楼方案确实更好 for /f "tokens=1 delims=" %%i in ('reg query "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" /f "FlashUtil*ActiveX.exe" /k') do ( reg  详情 回复 发表于 前天 19:10
回复

使用道具 举报

发表于 前天 19:10 | 显示全部楼层
本帖最后由 hua_wuxin 于 2026-2-27 20:46 编辑
zhoubin 发表于 2026-2-27 17:47
不好意思,我是菜鸟,我要把找到的这两个注册表项,删掉,批处理我不会写呢,谢谢您!

20:46补充:
reg query ... /f ... /k会多返回一行“搜索结束: 找到 n 匹配。”,最好检查排除掉。
for /f "tokens=1 delims=" %%i in ('reg query "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" /f "FlashUtil*ActiveX.exe" /k') do (
  echo %%i | find /i "HKEY_LOCAL_MACHINE\" >nul && reg delete "%%i" /f
)

------------------

7楼方案确实更好

for /f "tokens=1 delims=" %%i in ('reg query "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" /f "FlashUtil*ActiveX.exe" /k') do (
  reg delete "%%i" /f
)

点评

好人  发表于 前天 20:23
谢谢,这个也可以,谢谢  详情 回复 发表于 前天 20:14

评分

参与人数 2无忧币 +10 收起 理由
yyz2191958 + 5
zhoubin + 5 感谢帮助!

查看全部评分

回复

使用道具 举报

发表于 前天 19:29 | 显示全部楼层
mark
回复

使用道具 举报

发表于 前天 20:09 | 显示全部楼层
了解
回复

使用道具 举报

 楼主| 发表于 前天 20:14 | 显示全部楼层
hua_wuxin 发表于 2026-2-27 19:10
7楼方案确实更好

for /f "tokens=1 delims=" %%i in ('reg query "HKLM\SOFTWARE\WOW6432Node\Microso ...

谢谢,这个也可以,谢谢
回复

使用道具 举报

发表于 前天 20:16 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2026-2-27 20:26 编辑

@echo off
setlocal enabledelayedexpansion
set "reg_path=HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options"
set "flash_file=FlashUtil??_34_0_0_372_ActiveX.exe"
for /f "tokens=7* delims=\" %%h in ('reg query "%reg_path%" /f %flash_file% /k') do (
    if not "%%i"=="" (
      echo "%reg_path%\%%i"
      reg delete "%reg_path%\%%i" /f
    )
)
pause

点评

奇怪,这个代码,竟然没删掉注册表项  详情 回复 发表于 前天 20:24
回复

使用道具 举报

 楼主| 发表于 前天 20:24 | 显示全部楼层

奇怪,这个代码,竟然没删掉注册表项

点评

delims=\ 网页系统 把 \ 整没了  详情 回复 发表于 前天 20:27
回复

使用道具 举报

发表于 前天 20:25 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2026-2-27 20:27 编辑

也可以更精准

@echo off
setlocal enabledelayedexpansion
set "reg_path=HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options"
for %%c in (64 32) do (
  set "flash_file=FlashUtil%%c_34_0_0_372_ActiveX.exe"
  for /f "tokens=7* delims=\" %%h in ('reg query "%reg_path%" /f !flash_file! /k') do (
    if not "%%i"=="" (
      echo "%reg_path%\%%i"
      reg delete "%reg_path%\%%i" /f
    )
  )
  set flash_file=
)
pause

点评

不好意思,还是没删掉  详情 回复 发表于 前天 20:35
回复

使用道具 举报

发表于 前天 20:27 | 显示全部楼层
zhoubin 发表于 2026-2-27 20:24
奇怪,这个代码,竟然没删掉注册表项

delims=\

网页系统 把 \ 整没了
回复

使用道具 举报

 楼主| 发表于 前天 20:35 | 显示全部楼层
dos时代菜鸟 发表于 2026-2-27 20:25
也可以更精准

@echo off

不好意思,还是没删掉

点评

那算了  详情 回复 发表于 昨天 07:15
回复

使用道具 举报

发表于 前天 22:45 来自手机 | 显示全部楼层
你这不是注册表,你这是批处理。
回复

使用道具 举报

发表于 昨天 07:06 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 昨天 07:15 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2026-2-28 07:26 编辑
zhoubin 发表于 2026-2-27 20:35
不好意思,还是没删掉

你确定 是 FlashUtil64_34_0_0_372_ActiveX.exe 准确的名字么?具体版本号 34_0_0_372 可能有差别。
如果有差别,需要把 34_0_0_372 在批处理中改成 *


del_flash.PNG




@echo off
setlocal enabledelayedexpansion
set "reg_path=HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options"
for %%c in (64 32) do (
  set "flash_file=FlashUtil%%c_*_ActiveX.exe"
  for /f "tokens=7* delims=\" %%h in ('reg query "%reg_path%" /f !flash_file! /k') do (
    if not "%%i"=="" (
      echo "%reg_path%\%%i"
      reg delete "%reg_path%\%%i" /f
    )
  )
  set flash_file=
)
pause

del_flash.PNG

点评

你这个批处理不能改,比如要删除:修改下句:为: @echo off setlocal enabledelayedexpansion set "reg_path=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" for %%c in (6  详情 回复 发表于 昨天 08:23

评分

参与人数 1无忧币 +5 收起 理由
zhoubin + 5 赞一个!谢谢!!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 昨天 08:23 | 显示全部楼层
dos时代菜鸟 发表于 2026-2-28 07:15
你确定 是 FlashUtil64_34_0_0_372_ActiveX.exe 准确的名字么?具体版本号 34_0_0_372 可能有差别。
如 ...

你这个批处理不能改,比如要删除:
  1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
复制代码
修改下句:
  1. set "reg_path=HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options"
复制代码
为:
  1. set "reg_path=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options"
复制代码

@echo off
setlocal enabledelayedexpansion
set "reg_path=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options"
for %%c in (64 32) do (
  set "flash_file=FlashUtil%%c_*_ActiveX.exe"
  for /f "tokens=7* delims=\" %%h in ('reg query "%reg_path%" /f !flash_file! /k') do (
    if not "%%i"=="" (
      echo "%reg_path%\%%i"
      reg delete "%reg_path%\%%i" /f
    )
  )
  set flash_file=
)
pause

就无效了

点评

把 7* 改成 6* 被 \ 分割的段数不一样了呀。 @echo off setlocal enabledelayedexpansion set "reg_path=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" for %%c in (64  详情 回复 发表于 昨天 18:28
回复

使用道具 举报

 楼主| 发表于 昨天 08:29 | 显示全部楼层
不要区分64 32了,简单点,谢谢
回复

使用道具 举报

发表于 昨天 09:48 | 显示全部楼层
进来学习一下
回复

使用道具 举报

发表于 昨天 11:33 | 显示全部楼层
谢谢
回复

使用道具 举报

发表于 昨天 12:57 | 显示全部楼层
学习一下
回复

使用道具 举报

发表于 昨天 13:12 来自手机 | 显示全部楼层
多谢楼主分享
回复

使用道具 举报

发表于 昨天 18:28 | 显示全部楼层
zhoubin 发表于 2026-2-28 08:23
你这个批处理不能改,比如要删除:修改下句:为:
@echo off
setlocal enabledelayedexpansion

把 7* 改成 6*  被 \ 分割的段数不一样了呀。

@echo off
setlocal enabledelayedexpansion
set "reg_path=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options"
for %%c in (64 32) do (
  set "flash_file=FlashUtil%%c_*_ActiveX.exe"
  for /f "tokens=6* delims=\" %%h in ('reg query "%reg_path%" /f !flash_file! /k') do (
    if not "%%i"=="" (
      echo "%reg_path%\%%i"
      reg delete "%reg_path%\%%i" /f
    )
  )
  set flash_file=
)
pause

点评

谢谢,感谢帮助,可以用了,谢谢!!  详情 回复 发表于 昨天 20:05

评分

参与人数 1无忧币 +5 收起 理由
zhoubin + 5 很给力!谢谢!!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 昨天 20:05 | 显示全部楼层
dos时代菜鸟 发表于 2026-2-28 18:28
把 7* 改成 6*  被 \ 分割的段数不一样了呀。

@echo off

谢谢,感谢帮助,可以用了,谢谢!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2026-3-1 02:57

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表