Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Меню с вариантами выбора

Ответить
Настройки темы
CMD/BAT - [решено] Меню с вариантами выбора

Аватара для i-Lex

Старожил


Сообщения: 290
Благодарности: 3


Конфигурация

Профиль | Отправить PM | Цитировать


Мне нужно сделать меню в bat-файле:
Какую операцию Вы хотите выполнить?

1) Переиндексация(reindex). (запустит cons.exe с параметром /reindex)
2) Регистрация.(Reg) (запускает с параметром /reg)
и так 6 пунктов.
Пункт выбирается по нажатию цифры пункта на клавиатуры (т.е. нажимается 1 и без нажатия enter произойдёт срабатывание нужного пункта)

Отправлено: 09:30, 27-02-2014

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
choice /?

Отправлено: 09:51, 27-02-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для i-Lex

Старожил


Сообщения: 290
Благодарности: 3

Профиль | Отправить PM | Цитировать


Эм...
Код: Выделить весь код
@echo off
echo 1) Переиндексайция
choice /? 1 start cons.exe /reindex
Так?

Просто я в написании скриптов очень плохо разбираюсь.

Отправлено: 07:38, 28-02-2014 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Поскольку у Вас много пунктов, проще будет оформить их вывод посредством «echo». Вот примерная болванка (не проверялось):
читать дальше »
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

echo Выберете одно из:
echo.
echo 1. Переиндексация
echo 2. Регистрация
echo 3. bla-bla-bla 3
echo 4. bla-bla-bla 4
echo 5. bla-bla-bla 5
echo 6. bla-bla-bla 6
echo ================
echo 7. Отмена
echo.
choice /c 1234567 /m "Нажмите цифру, соответствующую Вашему выбору"

call :Choice%ErrorLevel%

endlocal
exit /b 0

:Choice1
	start "" "cons.exe" /reindex
	exit /b 0

:Choice2
	exit /b 0

:Choice3
	exit /b 0

:Choice4
	exit /b 0

:Choice5
	exit /b 0

:Choice6
	exit /b 0

:Choice7
:Choice0
	rem Nothing to do
	exit /b 0

Последний раз редактировалось Iska, 12-03-2014 в 13:22. Причина: Убрано «/d 7» как ошибочное в данном случае

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:52, 28-02-2014 | #4


Аватара для i-Lex

Старожил


Сообщения: 290
Благодарности: 3

Профиль | Отправить PM | Цитировать


Iska, Выдаёт такое:
http://yadi.sk/d/w7Q_C_00KNaWu

Отправлено: 12:20, 12-03-2014 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Уберите «/d 7».

читать дальше »
У меня нет «Windows 7», потому я и написал:
Цитата Iska:
Вот примерная болванка (не проверялось): »

Отправлено: 12:40, 12-03-2014 | #6


Аватара для i-Lex

Старожил


Сообщения: 290
Благодарности: 3

Профиль | Отправить PM | Цитировать


Iska, возможно ли сделать так, что бы меню не закрывалось и после завершения задачи - можно было выбрать другой пункт?

Отправлено: 13:02, 12-03-2014 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Можно:
читать дальше »
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

:Repeat

echo Выберете одно из:
echo.
echo 1. Переиндексация
echo 2. Регистрация
echo 3. bla-bla-bla 3
echo 4. bla-bla-bla 4
echo 5. bla-bla-bla 5
echo 6. bla-bla-bla 6
echo ================
echo 7. Отмена
echo.
choice /c 1234567 /m "Нажмите цифру, соответствующую Вашему выбору"

call :Choice%ErrorLevel%
goto :Repeat

endlocal
exit /b 0

:Choice1
	start "" "cons.exe" /reindex
	exit /b 0

:Choice2
	exit /b 0

:Choice3
	exit /b 0

:Choice4
	exit /b 0

:Choice5
	exit /b 0

:Choice6
	exit /b 0

:Choice7
:Choice0
	rem Nothing to do
	exit /b 0

Отправлено: 13:23, 12-03-2014 | #8


Аватара для O L E G

Старожил


Сообщения: 284
Благодарности: 16

Профиль | Отправить PM | Цитировать


Либо так!

Код: Выделить весь код
@echo off
COLOR 06
cls
echo.
echo.
:start
echo         1. Установить драйвер защиты (обязательно) - 1
echo         2. Установить защиту реестра - 2
echo         3. Установить защиту (файлов, папок, драйверов, служб) - 3
echo         4. Показывать окно Командной Cтроки до запуска
echo            пользователя (Для Доп Безопасности CMD.EXE) - 4
echo         5. Вывести подробный отчет по защите (папка logs) - 5
echo         6. Выход - 6
echo.
set /p choice=        Введите цифру желаемого пункта: 
rem if not '%choice%'=='' set choice=%choice:~0;1%
if '%choice%'=='1' goto 1
if '%choice%'=='2' goto 2
if '%choice%'=='3' goto 3
if '%choice%'=='4' goto 4
if '%choice%'=='5' goto 5
if '%choice%'=='6' goto 6
if not '%choice%'=='' echo "%choice%" неверный пунк
echo

goto start
:1
Свой код

goto start
:2
Свой код

goto start
:3
Свой код

goto start
:4
Свой код

goto start
:5
Свой код

goto start
:6
Свой код

-------
Сложность программы растет до тех пор, пока не превысит способности программиста.

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:09, 13-03-2014 | #9


Аватара для Freddy1984

Старожил


Сообщения: 147
Благодарности: 9

Профиль | Цитировать


Приветствую всех.
Подскажите пожалуйста момент. После "Введите цифру желаемого пункта" мне допустим надо ещё накидать пару строчек текста, но через echo текст в консоли не отображается. Возможно ли вообще отобразить текст в консоле после "Введите цифру желаемого пункта" следующей строкой?


Для примера:

1. Установить драйвер защиты (обязательно) - 1
2. Установить защиту реестра - 2
3. Установить защиту (файлов, папок, драйверов, служб) - 3
4. Вывести подробный отчет по защите (папка logs) - 4
5. Выход - 5

Введите цифру желаемого пункта:

ТУТ ТЕКСТ БЛАБЛАБЛА.....

Последний раз редактировалось Freddy1984, 04-03-2020 в 14:23.


Отправлено: 14:12, 04-03-2020 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Меню с вариантами выбора

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Меню выбора команд fly380 Скриптовые языки администрирования Windows 1 10-08-2012 13:27
Debian/Ubuntu - [решено] Меню выбора ОС zond50m31 Общий по Linux 9 14-02-2012 21:22
Загрузка - Меню выбора конфигурации оборудования aagatin Microsoft Windows 2000/XP 3 15-06-2011 09:28
Меню выбора загрузки Dipytat Хочу все знать 1 15-04-2010 23:30
Загрузка - [решено] Меню выбора ОС. pa1n Microsoft Windows Vista 11 17-07-2007 19:05




 
Переход