Я пытаюсь создать выбор меню с помощью командного файла Windows.переменная партии из пользовательского ввода обрабатывается по-разному
Когда я использую цикл for, который создает переменную i, и используйте его для вызова переменной something [i] с !something[%%i]!
, он отлично работает.
Однако, когда я пытаюсь создать переменную j из пользовательского ввода и использовать ее для вызова переменной something [j] с помощью !something[%%j]!
, она не работает.
Я не знаю, почему он обращается с переменной J по-разному к переменной I, но, кажется, J может быть вызвана только с помощью !j!
, а не %%j
@echo off
setlocal EnableDelayedExpansion
set something[0]=aaaa
set something[1]=bbbb
set something[2]=cccc
set something[3]=dddd
set something[4]=eeee
set something[5]=ffff
set something[6]=gggg
for /l %%i in (0,1,6) do echo %%i. !something[%%i]!
set /p j="Input selection: "
echo.
echo j=%%j
echo j=!j!
echo.
set Selection=!something[%%j]!
echo Selection = !Selection!
pause
Вот пример вывода:
0. aaaa
1. bbbb
2. cccc
3. dddd
4. eeee
5. ffff
6. gggg
Input selection: 3
j=%j
j=3
Selection =
Press any key to continue . . .
Спасибо, я подумал, что мне нужно использовать двойную «%» при вызове любой переменной из командного файла с использованием знаков процента (первый знак процента, чтобы избежать второго), и попытался использовать! Something [%% j %% ]! также. – Knowbody