Пакет Windows: для блока с переменной внутри переменной

Я хочу сделать переменную переменной, а это значит, что я хочу создать много переменных с именами variable, например. Вар1, Вар2, Вар3, Вар4. Это работает (см. ниже), но ECHOing не работает, так как я должен использовать EnableDelayedExpansion из-за одной обработки в FOR-Loop, а !var%num%! интерпретируется неправильно.

Итак, вот что у меня есть:

SetLocal EnableDelayedExpansion

SET /a num = 0
FOR /F "tokens=*" %%a IN ('dir /b *.bat') DO (
    SET /a num = num + 1
    SET var!num!=%%a
    CALL ECHO No. !num!^: %%var!num!%%
    )

EndLocal DisableDelayedExpansion

Через несколько часов это работает, используя CALL-процедуру перед эхом.

Мой вопрос к вам, ребята, теперь, как сделать

    CALL ECHO No. !num!^: %%var!num!%%

немного лучше. я сначала попробовал

    ECHO No. !Num!^: !var%num%!

но это не удается, так как он находится в одном FOR-Loop. Есть ли возможность сделать это лучше, чем CALLING это?

Заранее спасибо Патрик


person Patrick    schedule 04.03.2015    source источник
comment
Правильный термин для вашей переменной внутри переменной — массив. См.: массивы- связанные-списки-и-другие-структуры-данных-в-cmd-exe-batch   -  person Aacini    schedule 04.03.2015
comment
Спасибо, Раджеш, это было именно то, что я искал.   -  person Patrick    schedule 10.03.2015