По сути, то, что вы можете сделать, это то, что некоторые люди называют парой "ключ-значение" или картой поиска. Это можно сделать двумя известными мне способами.
Первый вариант устанавливает все пары ключ-значение в одну переменную. Затем выполняются две подстановки строк, чтобы извлечь правильное значение из индекса ключа, установленного командой выбора.
@echo off
cls
SET keymap=1-None;2-Leather;3-Wooden;4-Stone;5-Bronze;6-Iron;7-Titanium;8-Adamantium
echo What armor do you want to change to?
echo(
echo 1. None
echo 2. Leather
echo 3. Wooden
echo 4. Stone
echo 5. Bronze
echo 6. Iron
echo 7. Titanium
echo 8. Adamantium
echo(
choice /c 12345678 /m "What'll it be?"
set "index=%errorlevel%"
CALL SET armor=%%keymap:*%index%-=%%
SET armor=%armor:;=&rem.%
echo Armor = %armor%
pause
Второй вариант создает массив пар значений ключа. Индекс массива снова устанавливается командой выбора и затем используется для получения соответствующего значения массива.
@echo off
setlocal enabledelayedexpansion
set "m=0"
for %%G in (None Leather Wooden Stone Bronze Iron Titanium Adamantium) do (
set /A m+=1
set "armor[!m!]=%%G"
)
echo(
echo 1. None
echo 2. Leather
echo 3. Wooden
echo 4. Stone
echo 5. Bronze
echo 6. Iron
echo 7. Titanium
echo 8. Adamantium
echo(
choice /c 12345678 /m "What'll it be?"
set "index=%errorlevel%"
set "armor=!armor[%index%]!"
echo Armor = %armor%
pause
endlocal