CMD将变量与列表项进行比较

时间:2012-04-03 17:13:14

标签: window 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. 
    )
)

此外,我现在想要写入breakcontinue的内容。

1 个答案:

答案 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