2012-04-03 2 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

+0

оконные скрипты –

ответ

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 
Смежные вопросы