Тема: CMD/BAT: Функция выбора вариантов (choice)
Предлагаю к рассмотрению функцию для выбора пользователем одного из нескольких вариантов. Некий аналог старого choice.
Сама функция:
:choice
:: Выбор пользователем одного из вариантов
:: Параметры - варианты выбора
setlocal
if "%~1"=="" (
set result=0
pause
goto choice_3
)
set count=0
:choice_1
set /a count+=1
echo %count%. %~1
shift
if not "%~1"=="" goto choice_1
:choice_2
set /p result=Выш выбор (1-%count%):
for /l %%i in (1, 1, %count%) do if "%result%"=="%%i" goto choice_3
goto choice_2
:choice_3
endlocal & exit /b %result%Пример запуска:
call :choice "Приветствие" "Случайное число" "Изменить цвета" "Выход"Создаст меню из четырех пунктов:
1. Приветствие
2. Случайное число
3. Изменить цвета
4. ВыходРезультат выбора помещается в переменную errorlevel.
Готовый пример в аттаче.

