Batch file cmd Reg Query(dword)if=(specific#)那么goto()或者goto()
我正在尝试将软件部署到一组计算机上,以运行安装程序,前提是这些计算机还没有一个特定的版本,无法使用guid识别。我将使用一个不使用guid的adobeverion作为我尝试做的示例 假设他们有Adobe9.3,但需要Adobe9.5 因此,我对两个DWORD中的一个进行了检查,这两个DWORD标识了它们当前安装的版本。当前代码如下:(使用回波响应进行测试) 所以, echo1=True,因此转到下一个dword检查(这是相同的键=但不同的值=因为它是另一个dword),如果该项也匹配skip installer,则转到installer echo2=False dword十进制数不等于运行安装程序的9.5版本dword 我在这个过程中运气不好,有人告诉我应该使用VBscript。。。但有人告诉我,使用cmd是可能的,这是我更喜欢的。Batch file cmd Reg Query(dword)if=(specific#)那么goto()或者goto(),batch-file,cmd,registry,regedit,Batch File,Cmd,Registry,Regedit,我正在尝试将软件部署到一组计算机上,以运行安装程序,前提是这些计算机还没有一个特定的版本,无法使用guid识别。我将使用一个不使用guid的adobeverion作为我尝试做的示例 假设他们有Adobe9.3,但需要Adobe9.5 因此,我对两个DWORD中的一个进行了检查,这两个DWORD标识了它们当前安装的版本。当前代码如下:(使用回波响应进行测试) 所以, echo1=True,因此转到下一个dword检查(这是相同的键=但不同的值=因为它是另一个dword),如果该项也匹配skip i
在此方面的任何帮助都将不胜感激。谢谢您在尝试之前设置
%value2%
和%base2%
:
@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
@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