批处理:数组索引返回空白

时间:2015-10-14 15:07:17

标签: arrays batch-file for-loop

在这段代码中,我试图通过交替分成两列来使列表适合WinPE中的屏幕。但是当我把!modelsvar[%increment%]:~20!放在回声中时它只返回~20。奇怪,因为!modelsvar[%%D]:~20!工作正常。我尝试了很多变种!和%但没有运气。任何人都知道我是否缺少一条特定的规则?

我启用了setlocal enabledelayedexpansion

set modelsx=%counter%
set /a counter=0

for /l %%D in (1,2,%modelsx%) do (
set /a counter+=1
set /a increment=!counter!+1
ECHO !counter!. !modelsvar[%%D]:~20!      !increment!. !modelsvar[%increment%]:~20!
set /a counter+=1
)

2 个答案:

答案 0 :(得分:1)

source.on('addfeature', function(evt){
    var feature = evt.feature;
    var coords = feature.getGeometry().getCoordinates();
});

Arrays, linked lists and other data structures in cmd.exe (batch) script

的详细信息

答案 1 :(得分:1)

您正在increment内立即展开ECHO,就像%increment%一样,因此返回的值是 for循环执行之前的。< / p>

这是另一种解决方法:

set modelsx=%counter%
set /a counter=0

for /l %%D in (1,2,%modelsx%) do (
    set /a counter+=1
    set /a increment=!counter!+1
    call ECHO !counter!. !modelsvar[%%D]:~20!      !increment!. %%modelsvar[!increment!]:~20%%
    set /a counter+=1
)