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

[注册表类] 删除注册表BAT脚本通配符

想删除注册表"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"下含 “oa”字样的键值。使用通配符“*”,“%”,“?”均不好使。有什么方法可以匹配删除含oa的键值。脚本如下:reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"  /v  "oa"

  1. set "run=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"
  2. for /f %%i in ('reg query "%run%"^|findstr ".*oa.*"') do reg delete "%run%" /v "%%i"
复制代码

TOP

回复 2# idwma
感谢大佬,验证好用。请问怎么连续配符多个。比如匹配含“css”,“你好”,“OA”
FSGKZZH

TOP

回复 3# ZZH123
  1. set "run=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"
  2. for /f %%i in ('reg query "%run%"^|findstr "oa css 你好"') do reg delete "%run%" /v "%%i"
复制代码

TOP

回复 4# idwma
大佬,我的想法是。连续通配符连续匹配“oa”,“你好”,“css”。具体删除的值有:111css、222css333、777你好、你好999、111oa、222oa、oa333
FSGKZZH

TOP

回复 4# idwma
匹配字符中含有中文字符时,findstr最好加上参数/r,不加的话有时可能会出问题。

TOP

回复 6# qixiaobin0715
你好,请问是这么加吗?
for /f %%i in ('reg query "%run%"^|findstr /r ".*你好.*"') do reg delete "%run%" /v "%%i" /f
FSGKZZH

TOP

4楼代码只需修改findstr /r即可,其余不动。

TOP

另外请问匹配时怎么不区分大小写
FSGKZZH

TOP

回复 9# ZZH123
要善于运用命令的帮助。比如这里使用findstr命令,你可以打开cmd,输入findstr /?,即可查询到各种参数的用法。/i就是你所需要的参数。

TOP

PowerShell 脚本
  1. $path = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Run';
  2. $name = (Get-Item $path).GetValueNames() -match '(?-i)css|你好|OA';
  3. if($name.Count){Remove-ItemProperty $path $name;}
复制代码

TOP

返回列表