Batch file 如何在注册表中获取版本号并使用批处理文件安装新软件?

Batch file 如何在注册表中获取版本号并使用批处理文件安装新软件?,batch-file,Batch File,我想在注册表中检查Muvizu的当前版本,如果它等于最新版本,如果不安装新版本,则不做任何事情。我想这是从批运行 我看过一些网站,比如这个: 但我正在努力调整代码并使其正常工作 需要查询的寄存器设置为: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Muvizu 节点为DisplayValue,最新版本为2013.10.25.01R 因此,本质上我需要一些wizzy批处理代码,它将执行以下操作: 检查注册表项, 如果regke

我想在注册表中检查Muvizu的当前版本,如果它等于最新版本,如果不安装新版本,则不做任何事情。我想这是从批运行

我看过一些网站,比如这个:

但我正在努力调整代码并使其正常工作

需要查询的寄存器设置为: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Muvizu 节点为DisplayValue,最新版本为2013.10.25.01R

因此,本质上我需要一些wizzy批处理代码,它将执行以下操作:

检查注册表项, 如果regkey显示版本=2013.10.25.01r,则不执行任何操作, 其他的
运行安装程序

这样的操作应该可以:

@echo off
setlocal

set regkey="HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Muvizu" /v DisplayValue
for /f "tokens=3 delims= " %%a in ('reg query %regkey%^|Find "DisplayValue"') do (
  if errorlevel 1 ( 
     REM Run installer
     goto :eof   
  )
  if "%%a" NEQ "2013.10.25.01r" (
    REM Run installer
  ) ELSE (
    Echo You have the most recent version of Muvizu
  )
)  

像您所描述的那样,这样的方法应该可以工作

reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Muvizu" |find /i "2013.10.25.01R" >nul || installer.exe

嗨,马特,这是一个处理,但是如果没有安装muvizu(即密钥不在那里),脚本错误表示找不到密钥。是否可以捕获此错误并运行安装程序?谢谢。。。。我认为这很管用,但我也做了一些其他的调整,但这正是我想要的。谢谢,标记为回答。