首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >命令注册表查询(dword) if = (specific#) then goto () else goto ()

命令注册表查询(dword) if = (specific#) then goto () else goto ()
EN

Stack Overflow用户
提问于 2013-09-20 21:29:54
回答 1查看 936关注 0票数 0

我正在尝试将软件部署到一组计算机上,如果它们还没有使用GUID标识的特定版本,就可以运行安装程序。我将使用一个不使用GUID的Adobe verion作为我想要做的事情的示例。

假设他们使用的是Adobe 9.3,但需要Adobe 9.5,因此我对标识其当前安装版本的两个dword中的一个进行了检查。当前代码如下:(使用回声响应进行测试)

代码语言:javascript
复制
:check1
@ECHO OFF
setlocal
set key="HKLM\Software\Wow6432Node\Adobe\Adobe Acrobat\9.0\Installer"
set value=VersionMax
:: delims is a TAB followed by a space
FOR /F "tokens=2* delims=    " %%A IN ('REG QUERY %key% /v %value%') DO SET base=%%B
if %base%=0x90005 && goto echo1 || goto echo2
:echo1
echo "Yes"
:echo2
echo "No"

因此,echo1 = True,所以转到下一个双字检查(这是相同的key=,但不同的value=,因为它是另一个双字),如果该双字也与跳过安装程序匹配,则转到安装程序echo2 = False运行安装程序。

我在这个过程中没有运气,我被告知我应该使用VBscript...但有人告诉我,使用cmd是可能的,这是我更喜欢的。在这方面的任何帮助都将非常感谢。谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-09-20 23:09:22

在尝试之前设置%value2%%base2%

代码语言:javascript
复制
@ECHO OFF &SETLOCAL
:check1
set "key=HKLM\Software\Wow6432Node\Adobe\Adobe Acrobat\9.0\Installer"
set "value1=VersionMax"
set "value2=Version (?)"
:: delims is a TAB followed by a space: this are default delimiter
FOR /F "tokens=2*" %%A IN ('REG QUERY "%key%" /v %value1%') DO SET "base1=%%~B"
FOR /F "tokens=2*" %%A IN ('REG QUERY "%key%" /v %value2%') DO SET "base2=%%~B"
if "%base1%"=="0x90005" if "%base2%"=="9.5 (?)" goto:NoInstall
REM put your install code here
:NoInstall
REM Adobe v9 is already installed
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18918060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档