我有一个存储在另一个变量中的变量的名称,我会在第一个变量中找到该变量的值。
我写了这段代码来解决它。
set var1=aaa
set var2=bbb
set var3=ccc
set var4=ddd
echo pick number 1 to 4
set /p ReturnCode=
set answer=%%var_%ReturnCode%%%
echo %answer%
我的麻烦是它给了变量名称而不是值。
例如,如果我输入3选择而不是输出“ ccc”,它将输出“ var_3”。谢谢您能提供的任何帮助。
答案 0 :(得分:2)
两种方法:
@echo off
setlocal enabledelayedexpansion
set var1=aaa
set var2=bbb
set var3=ccc
set var4=ddd
echo pick number 1 to 4
set /p ReturnCode=
:: using delayed variable expansion
set answer=!var%ReturnCode%!
echo %answer%
:: using the call double percent trick
call echo %%var%ReturnCode%%%
:: or
call set answer2=%%var%ReturnCode%%%
echo %answer2%