1 (изменено: Arigato, 2012-12-28 14:44:24)

Тема: 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.

Готовый пример в аттаче.

Post's attachments

choice.cmd 750 b, 29 downloads since 2012-12-28 

You don't have the permssions to download the attachments of this post.