标题: [注册表类] 删除注册表BAT脚本通配符 [打印本页]
作者: ZZH123 时间: 2021-10-26 19:44 标题: 删除注册表BAT脚本通配符
想删除注册表"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"下含 “oa”字样的键值。使用通配符“*”,“%”,“?”均不好使。有什么方法可以匹配删除含oa的键值。脚本如下:reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v "oa"
作者: idwma 时间: 2021-10-26 22:26
- set "run=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"
- for /f %%i in ('reg query "%run%"^|findstr ".*oa.*"') do reg delete "%run%" /v "%%i"
复制代码
作者: ZZH123 时间: 2021-10-27 09:38
回复 2# idwma
感谢大佬,验证好用。请问怎么连续配符多个。比如匹配含“css”,“你好”,“OA”
作者: idwma 时间: 2021-10-27 09:44
回复 3# ZZH123 - set "run=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"
- for /f %%i in ('reg query "%run%"^|findstr "oa css 你好"') do reg delete "%run%" /v "%%i"
复制代码
作者: ZZH123 时间: 2021-10-27 09:53
回复 4# idwma
大佬,我的想法是。连续通配符连续匹配“oa”,“你好”,“css”。具体删除的值有:111css、222css333、777你好、你好999、111oa、222oa、oa333
作者: qixiaobin0715 时间: 2021-10-27 10:00
回复 4# idwma
匹配字符中含有中文字符时,findstr最好加上参数/r,不加的话有时可能会出问题。
作者: ZZH123 时间: 2021-10-27 14:34
回复 6# qixiaobin0715
你好,请问是这么加吗?
for /f %%i in ('reg query "%run%"^|findstr /r ".*你好.*"') do reg delete "%run%" /v "%%i" /f
作者: qixiaobin0715 时间: 2021-10-27 16:15
4楼代码只需修改findstr /r即可,其余不动。
作者: ZZH123 时间: 2021-10-27 20:10
另外请问匹配时怎么不区分大小写
作者: qixiaobin0715 时间: 2021-10-27 20:22
回复 9# ZZH123
要善于运用命令的帮助。比如这里使用findstr命令,你可以打开cmd,输入findstr /?,即可查询到各种参数的用法。/i就是你所需要的参数。
作者: WHY 时间: 2021-10-27 21:01
PowerShell 脚本- $path = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Run';
- $name = (Get-Item $path).GetValueNames() -match '(?-i)css|你好|OA';
- if($name.Count){Remove-ItemProperty $path $name;}
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |