2012-04-03 106 views
0

我需要CMD腳本的幫助。這裏是我的問題:CMD比較變量和列表項目

我有項目的列表,也有變量,例如顯示當前版本的SDK。

set CURRENT_VERSION = 2.3 
set LIST_OF_ITEMS = (4.0.3 2.3.3 2.2) 

我想寫這樣的事情

for %%A in %CURRENT_VERSION % do (
    if [%%A] grt [%SDK_VERSION%] (
     echo greater. 
    ) 
) 

此外,我想現在我必須寫break或在continue

+1

CMD腳本適用於Windows,與Android/bash腳本完全無關,並沒有類似於該語法的任何內容。你究竟在幹什麼? – Mat 2012-04-03 17:21:23

+0

Windows腳本 – 2012-04-03 18:54:56

回答

1

這段代碼和你寫的代碼差不多,但是很有效。

set CURRENT_VERSION=2.3 
set LIST_OF_ITEMS=4.0.3 2.3.3 2.2 

for %%A in (%LIST_OF_ITEMS%) do (
    if [%%A] gtr [%CURRENT_VERSION%] (
     echo greater. 
     goto continue 
    ) 
) 
:continue 

不過,我認爲比較以相反的順序進行的,因此它應該是:

set CURRENT_VERSION=2.3 
set LIST_OF_ITEMS=4.0.3 2.3.3 2.2 

for %%A in (%LIST_OF_ITEMS%) do (
    if [%CURRENT_VERSION%] gtr [%%A] (
     echo Current version greater %%A. 
     goto continue 
    ) 
) 
echo Current version too low 
goto :EOF 

:continue 

注意,版本號進行比較像串。如果你想用這些數字得到正確的結果,那麼它們都必須具有相同的格式;那就是:

set CURRENT_VERSION=2.3.0