如何在批处理或VBScript中使用通配符在registry中search密钥?

我需要做一个批处理或一个VBScript,它卸载每个版本的Mozilla Firefox。 在registry中有一个关键:

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

Version具有安装的Firefox版本的价值。 在这个键下有一个UninstallString条目。 我需要阅读这个价值。 问题是,版本是一个variables。 因此,如果Mozilla Firefox 1.0.1被删除,那么关键将如下所示:

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

如果安装了2.0.2,那么密钥将如下所示:

 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 

对我来说输出:

Version: Mozilla Firefox 7.0 (x86 en-GB)

卸载程序: C:\ Program Files \ Mozilla Firefox \ uninstall \ helper.exe

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