2014-02-19 110 views
0

我想檢查註冊表中當前版本的Muvizu,然後如果它等於最新版本,如果不安裝新版本,請不要執行任何操作。我希望從批處理中運行。如何在註冊表中獲取版本號並使用批處理文件安裝新軟件?

我已經看了一些網站,像這樣的:

http://www.msfn.org/board/topic/113643-batch-file-that-check-version-in-registry/

,但我努力適應的代碼,並得到它的工作。

需要查詢的寄存器設置爲: HKLM \ SOFTWARE \微軟\的Windows \ CurrentVersion \卸載\ Muvizu 和節點是DisplayValue和最新版本值2013.10.25.01R

所以基本上我需要一些wizzy批次代碼,將做到以下幾點:

檢查註冊表項來, 如果註冊表項來顯示版本= 2013.10.25.01r,什麼也不做, 別的, 運行安裝程序

回答

1

像這樣的東西應該這樣做:

@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 
) 
) 
+0

嗨啞, 的是,如果沒有安裝muvizu但是工作的治療(即關鍵是不存在的),並不是說該密鑰的腳本錯誤。是否有可能發現這個錯誤並運行安裝程序? – Xeo

+0

請參閱上面的編輯。 –

+0

謝謝....我認爲這工作正常,但我有點修改了一些其他的一些東西,但它正是我所期待的。謝謝,標記爲答案。 – Xeo

1

像這樣的東西應該像你所描述的那樣工作。

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