定义变化的变量

时间:2019-11-28 16:38:30

标签: batch-file

我正在尝试创建一个变量,该变量将基于变量结果链接到其他变量,但似乎无法使其正常工作。这是代码:

@echo off
set rollnumbera=10
set /a num=%random% %%rollnumbera +1
set "message=msg%num%"
set msg1=a
set msg2=b
set msg3=c
set msg4=d
set msg5=e
set msg6=f
set msg7=g
set msg8=h
set msg9=i
set msg10=j
echo %message%
echo %num%
pause

当我运行它时,它显示msg%num%结果,但似乎没有链接到设置的msg#s。我想知道是否有办法做到这一点,或者是否需要"if %num% == message number (echo message)"。这只是一个易于访问的问题,但是任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

固定代码:

@echo off 
setlocal enabledelayedexpansion
set rollnumbera=10 
set /a num=(%random% %% rollnumbera)+1 
set msg1=a 
set msg2=b 
set msg3=c 
set msg4=d 
set msg5=e 
set msg6=f 
set msg7=g 
set msg8=h 
set msg9=i 
set msg10=j 
for %%a in ("!msg%num%!") do set message=%%a
echo %message% 
echo %num% 
pause