Вставить случайную переменную интергер в индекс массива в пакете - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь выбрать 1 из 10 случайных строк из заранее определенного массива, используя код ниже. Когда% Answer% является эхо, он печатает "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]

1 Ответ

0 голосов
/ 15 мая 2018

У вас есть два варианта.

Использовать отложенное расширение.

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

Я не знаю, как вы создаете свой массив, поэтому этот ответ может потребовать доработки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...