Этот код почти такой же, как вы написали, но он работает.
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