对于%% B真的起作用了

时间:2016-07-19 17:08:08

标签: loops batch-file for-loop cmd

我希望聪明的脑袋可以帮助我,因为我感到很困惑。

这是一个更大的剧本的一部分,但这是让我感到困惑的一个。

    for %%B in (01,02,03,04,05,06,07,08,09,10,11,12,13,14) do (

set tjek2=

echo %%B
if %%B LSS 4 set isnow=_POS0%%B DT_pos-db.xml
if %%B GTR 3 set isnow=_POS0%%B FC_pos-db.xml
if %%B GTR 7 set isnow=_POS0%%B FC_pos-db.xml
if %%B GTR 9 set isnow=_POS0%%B FC_pos-db.xml
echo !isnow!
pause
)

一切都很有效,直到我达到Nr 8和Nr 9。 然后代码输出:

_POS008 DT_pos-db.xml
_POS009 DT_pos-db.xml

对于我的生活,我无法理解为什么它不像前面列出的4那样把它写成FC_pos-db。

有谁可以帮我解释一下这个?

注意,

if %%B GTR 7 set isnow=_POS0%%B FC_pos-db.xml

部分是我后来添加的内容,试图强制Nr 8和9为FC而不是DT

提前谢谢

1 个答案:

答案 0 :(得分:0)

SomethingDark给出了这个解释。

并不是它小于4,只是批次认为以0开头的数字是八进制,而08不是八进制的有效数字

谢谢:)