windows - 如何在批处理或 VBScript 中使用通配符搜索注册表中的键?

标签 windows vbscript batch-file registry

我需要制作一个批处理或一个 VBScript,它可以卸载每个版本的 Mozilla Firefox。在注册表中有一个键:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Mozilla Firefox (Version). 

Version 具有已安装的 Firefox 版本的值。在此键下有一个条目 UninstallString。我需要以某种方式阅读这个值。问题是 Version 是一个变量。因此,如果安装了 Mozilla Firefox 1.0.1,则 key 将如下所示:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Mozilla Firefox (1.0.1).

如果安装了 2.0.2,则 key 将如下所示:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Mozilla Firefox (2.0.2).

但我不知道安装的是哪个版本。那么我如何在不知道安装了哪个版本的情况下读取这个键(和卸载值)呢? 有人可以帮助我吗?

谢谢。

最佳答案

怎么样:

const HKEY_LOCAL_MACHINE = &H80000002
const REG_PATH = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
const FOX_MASK = "Mozilla Firefox*"

dim re: set re = New RegExp
re.IgnoreCase = True
re.Global = True
re.Pattern = FOX_MASK

dim oReg: set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
oReg.EnumKey HKEY_LOCAL_MACHINE, REG_PATH, arrSubKeys

dim strValue
for each subkey In arrSubKeys
    if re.test(subkey) then
       oReg.GetExpandedStringValue HKEY_LOCAL_MACHINE, REG_PATH & subkey, "UninstallString", strValue
       WScript.StdOut.WriteLine "Version: " & subkey
       WScript.StdOut.WriteLine "Uninstaller: " & strValue
    end if
next

对我来说输出:

<b>Version:</b> Mozilla Firefox 7.0 (x86 en-GB)

<b>Uninstaller:</b> C:\Program Files\Mozilla Firefox\uninstall\helper.exe

(注意这与您的模式不同)

关于windows - 如何在批处理或 VBScript 中使用通配符搜索注册表中的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7498252/

相关文章:

c - EOF 位于输入中间

windows - 在 Anaconda Powershell 中只获取 IP 地址

python - 在 Windows 上将自定义 CA 根证书添加到 GCloud 实用程序(或一般的 Python)

vbscript - 经典 Asp 中的参数化查询

variables - 如何检查目录名称中是否存在带有通配符的目录?

python - Pyserial 在 Windows 上的非阻塞/忙等待用法 : How to monitor multiple serial ports in real time?

performance - 测量命令或秒表返回令人困惑/不准确的结果

if-statement - 如何在同一个 "And"语句中一起使用 "Or"和 "If"关键字

visual-studio - 如何打开vs2015的开发者命令提示符?

windows - 批量替换参数值