Одним из возможных решений является перечисление всех файлов .jal и присвоение им номера опции, сохранение результата и, основываясь на вводе пользователя, поиск файла на основе номера опции.Поскольку я не знаю способа сохранить такой результат в памяти (без типа данных массива / хэш-таблицы), только в файле, если файл не может быть использован, то листинг должен повторяться детерминистическим образом, чтобы, если мы- присвоить номера опций, мы получим тот же результат.Мы можем сделать это, обеспечив алфавитное упорядочение.
Вот одна из реализаций:
BLOCK 1
setlocal enabledelayedexpansion
FOR /f "delims=|" %%i IN ('dir /b /on "yourpath\*.jal"') DO (
set /a counter+=1
echo !counter!^) %%~ni
)
endlocal
Вложенная команда dir обеспечивает алфавитное упорядочение (ссылка.)
Замечание, почему я поставил трубу (|) в качестве разделителя: если вы не определите разделитель, будет использовано пространство по умолчанию.Если имя вашего файла содержит пробел, оно будет усечено.Поэтому я выбрал символ, который недопустим в именах файлов, чтобы гарантировать, что возвращается полное имя файла.
Теперь, если вы получили от пользователя число следующим образом:
set /p option=Choose your option:
после этой команды (вычисление и, возможно, повторный запрос ввода), чтобы выполнить поиск файлаВы можете повторить BLOCK 1, но замените строку echo проверкой параметра, подобного следующему:
if !counter! == %option%
и поместите эти команды в блок if, чтобы сделать то, что вы хотите сделать с файлом (для отладки отложитекоманда echo).