2014-02-11 108 views
0

嗯,我正在編寫一個批處理文件,我需要在系統中獲取當前版本的已安裝jre,然後根據該文件做出決定 - 我意識到我可以通過查詢註冊表來獲取當前版本。下面的命令給出了下面的輸出 -如何獲取使用批處理文件安裝的jre的當前版本

reg query "HKLM\Software\JavaSoft\Java Runtime Environment" 

HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment 
    Java7FamilyVersion REG_SZ 1.7.0 
    CurrentVersion REG_SZ 1.7 

HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\1.7 
HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\1.7.0 

,但我無法得到價值1.7解析使用

for /f "tokens=3" %%i in ('Command') do echo %%i 

我只希望「1.7」具體到當前版本,然後這個輸出比較它並做出決定。我無法理解什麼選擇會得到。 任何擅長批處理命令的人都可以幫我解決這個問題嗎?任何幫助將不勝感激。我也嘗試解析java -version的輸出並獲取值。

+0

你爲什麼不使用Java的版本? –

+0

謝謝!我發現這一個 - 它的工作。 ('java -fullversion 2 ^> ^&1')set set jver = %% j %% k' = for/f tokens^= 2-5^delims^=。-_ ^「%% j – Shamik

回答

2

您可以使用「java -version」命令並過濾/解析輸出。

rem以「java -version」輸出並過濾包含「Runtime Environme NT」的行。服用的第6個字,並呼應了部分之前「_」

for /f "tokens=1-10" %%a in ('java -version 2^>^&1 ^| find "Runtime Environme 
nt"') do for /f "delims=_" %%x in ('echo %%f') do echo %%x 
相關問題