2017-08-09 147 views
0

我想知道是否可以在Windows注册表中使用bat文件查找和删除某些给定的注册表值。在Windows注册表中使用bat文件搜索某个字符串名称

例如,我想删除所有条目至极包含单词oracle,所以BAT文件必须删除例如像所有条目:

c:\users\user\AppData\LocalLow\Oracle\Java\jre1.8.0_101\
Microsoft OLE DB Provider for Oracle
c:\oracle\product\11.2.0\client_1\bin\OraOLEDB11.DLL

正如你可以看到,3个条目在其中具有oracle这个词。这可能吗?

非常感谢!

+2

可能会有用:http://www.nirsoft.net/utils/regscanner.html –

+0

目前还不清楚,你试图匹配什么(任何地方?整个词只?如果是的话,什么是分隔符? )。它也表明,你不是在寻找值来匹配,而是在于他们存储的数据。请修改您的问题以包含此信息。 – IInspectable

回答

1

有两个命令可以满足您的要求:reg queryreg delete

With req query您可以搜索注册表中的键和/或值。

reg query <KeyName> [{/v <ValueName> | /ve}] [/s] [/se <Separator>] [/f <Data>] [{/k | /d}] [/c] [/e] [/t <Type>] [/z] 

以下示例递归搜索(/s)在HKCU

reg query HKCU /s /f Oracle 

要删除注册表项或值使用reg delete

Reg delete <KeyName> [{/v ValueName | /ve | /va}] [/f] 

要批量写入,您必须稍微过滤reg query的输出,并使用for /L循环逐行解析。如果您遇到麻烦,请展示您的努力并询问具体问题(编辑您的问题)。

还可以考虑在删除选定密钥之前使用reg export进行备份。

Reg export KeyName FileName [/y] 

另一个伟大的工具,这样的事情是PowerShell

+0

谢谢你这么快回复,我会试试这种方式。 –