<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; CMD/BAT: Функция выбора вариантов (choice)]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7922&amp;type=atom" />
	<updated>2012-12-28T10:33:03Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=7922</id>
		<entry>
			<title type="html"><![CDATA[CMD/BAT: Функция выбора вариантов (choice)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=67960#p67960" />
			<content type="html"><![CDATA[<p>Предлагаю к рассмотрению функцию для выбора пользователем одного из нескольких вариантов. Некий аналог старого choice.</p><p>Сама функция:</p><div class="codebox"><pre><code>:choice
:: Выбор пользователем одного из вариантов
:: Параметры - варианты выбора
setlocal
if &quot;%~1&quot;==&quot;&quot; (
  set result=0
  pause
  goto choice_3
)
set count=0
:choice_1
set /a count+=1
echo %count%. %~1
shift
if not &quot;%~1&quot;==&quot;&quot; goto choice_1
:choice_2
set /p result=Выш выбор (1-%count%): 
for /l %%i in (1, 1, %count%) do if &quot;%result%&quot;==&quot;%%i&quot; goto choice_3
goto choice_2
:choice_3
endlocal &amp; exit /b %result%</code></pre></div><p>Пример запуска:</p><div class="codebox"><pre><code>call :choice &quot;Приветствие&quot; &quot;Случайное число&quot; &quot;Изменить цвета&quot; &quot;Выход&quot;</code></pre></div><p>Создаст меню из четырех пунктов:</p><div class="codebox"><pre><code>1. Приветствие
2. Случайное число
3. Изменить цвета
4. Выход</code></pre></div><p>Результат выбора помещается в переменную <em>errorlevel</em>.</p><p>Готовый пример в аттаче.</p>]]></content>
			<author>
				<name><![CDATA[Arigato]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29277</uri>
			</author>
			<updated>2012-12-28T10:33:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=67960#p67960</id>
		</entry>
</feed>
