我正在尝试使用下面的代码从预定数组中选择10个随机字符串中的1个。 当%Answer%为echo时,它会输出“randomNumber”。
我出错的任何想法。
echo off
setlocal enabledelayedexpansion
set /a randomNumber=%RANDOM% %%10
set Answer=!foo[(%randomNumber%)]!
echo %Answer%
pause
编辑:这是我创建数组的方式(上下文:我正在尝试编写Magic 8 Ball)
set a/ foo[0]=Majic8BallDon'tKnow.Majic8BallSaysAskAgain..
set a/ foo[1]=You are not worthy of an answer..
set a/ foo[2]=You wouldn't understand if I told you..
依此类推foo [9]
答案 0 :(得分:2)
你有两个选择。
使用延迟扩展。
setlocal enabledelayedexpansion
set /a randomNumber=%RANDOM% %%10
set Answer=!foo[(%randomNumber%)]!
echo %Answer%
pause
或使用通话命令
set /a randomNumber=%RANDOM% %%10
call set Answer=%%foo[(%randomNumber%)]%%
echo %Answer%
pause
我不知道你是如何创建阵列的,所以这个答案可能需要一些调整。