从其他变量获取CMD中的变量名称

时间:2014-03-27 09:28:35

标签: batch-file cmd

所以我正在编写一个简短的CMD脚本与CURL一起使用,遇到了我似乎无法用Google解决的问题。

我想要的是根据其他变量的名称获取变量,例如:

    @echo off
    SET Example1 = Test1
    SET Example2 = Test2
    SET Example3 = Test3 (The variable data isn't this similar ofc)
    ...
    FOR %%G in (1,2,3) DO (
    ...
    *This is where I want to Echo out Something like Example%%G* 
    )

只需使用

    Echo Example%%G

没有工作,我似乎无法在网上找到任何东西。

2 个答案:

答案 0 :(得分:1)

批处理对SET语句中的空格敏感。 SET FLAG = N将名为“FLAG Space ”的变量设置为值“ Space N”

一旦你修复了它,输出它,除非你使用delayedexpansion(太多的SO例子......),试试

FOR %%x IN (1,2,3) DO CALL ECHO %%example%%x%%

其中echo可以是set "extra%%x=%%example%%x%%"

除此之外,需要更多关于你实际做什么的信息......

答案 1 :(得分:1)

试试这个:

@echo off
setlocal enabledelayedexpansion
SET Example1=Test1
SET Example2=Test2
SET Example3=Test3
FOR %%G in (1,2,3) DO (
  echo. !Example%%G!
 )

正如Magoo所指出的,SET命令中变量和值之间应该没有空格。