首页 > 解决方案 > 定义一个变化的变量

问题描述

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

@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)"需要。这只是一个易于访问的问题,但任何建议都将不胜感激。

标签: batch-file

解决方案


固定代码:

@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

推荐阅读