0

我想创建一个变量变量,这意味着我想创建许多具有变量名称的变量,例如 Var 1、 Var 2、 Var 3、 Var 4。这有效(见下文),但ECHOing 不起作用,因为我必须使用-LoopEnableDelayedExpansion中的单一处理并且没有正确解释。FOR!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

几个小时后,现在可以在CALLecho 前面使用 -Routine

我对你们的问题是现在如何制作

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

好一点。我第一次尝试

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

但这失败了,因为它在FOR单循环中。有没有机会让它比CALLING它更好?

提前谢谢帕特里克

4

1 回答 1

1
SetLocal EnableDelayedExpansion

SET /a "num=0"

FOR /F "delims=" %%a IN ('dir /b *.bat') DO (
    SET /a "num+=1"
    SET "var!num!=%%a"
    FOR %%b in (!num!) do ECHO No. !num!: !var%%b!
)

EndLocal 
于 2015-03-04T10:30:21.310 回答