Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/82: Рейтинг темы: голосов - 82, средняя оценка - 4.59
 Аватар для fly380
41 / 7 / 2
Регистрация: 07.06.2012
Сообщений: 100

Меню выбора

09.08.2012, 03:18. Показов 15364. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста добавить в этот батник правило которое будет выводить предложение завершить роботу (завершить роботу: Y/N) если выбраный *.exe запустился.
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
:m1
Echo  #*******************************#
Echo  * ‚лЎЁаЁвҐ ўҐабЁо ў*襣® HBOOT: *
Echo  *-------------------------------*
Echo  * HBOOT 1.01 - 1                *
Echo  * HBOOT 1.02 - 2                *
Echo  #*******************************#
Echo.
Set /p choice="‚*и ўлЎ®а: "
if not defined choice goto m1
if "%choice%"=="1" (start 1.exe)
if "%choice%"=="2" (start 2.exe)
Echo.
Echo ЌҐ Їа*ўЁ«м*® ᤥ«** ўлЎ®а §*¤**Ёп
Echo.
Echo.
goto m1
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.08.2012, 03:18
Ответы с готовыми решениями:

Меню выбора команд
1 - нужно сделать bat с выбором возможностей нажимаешь 1 выполняется одна команда на 2 другая на форуме есть почти похожие темы но что-то...

Меню выбора файлов
Необходима помощь, ибо туг в этом вопросе. Нужно создать батник который проверяет папку F:\Baсkups, выводит полный список файлов в ней...

Меню для выбора команд
Добрый день! всем! помогите сделать батник с выводом сообщения-меню где 1= пример: запуск одного приложения, 2= запуск еще одного, 3= выход...

13
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
09.08.2012, 22:40
Bash
11
12
if "%choice%"=="1" (start 1.exe&goto :m2)
if "%choice%"=="2" (start 2.exe&goto :m2)
Bash
18
19
20
21
:m2
Echo Завершить работу?
Choice
if %errorlevel%==2 goto :m1
Завершить работу чего? - меню или запущенной программы...
1
 Аватар для fly380
41 / 7 / 2
Регистрация: 07.06.2012
Сообщений: 100
09.08.2012, 22:46  [ТС]
Да так уже лучше, но если не трудно как дописать чтобы если *.exe не найден или не запущен то выдает ошибку и предлагает вернуться к выбору программы?
Цитата Сообщение от Dragokas Посмотреть сообщение
Завершить работу чего? - меню или запущенной программы...
Меню
0
1781 / 763 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
09.08.2012, 23:34
Цитата Сообщение от fly380 Посмотреть сообщение
Меню
Bash
1
if "%choice%"=="1" (start 1.exe&& exit /b)
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
09.08.2012, 23:50
Choice /?
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
CHOICE [/C список] [/N] [/CS] [/T тайм-аут /D элемент] [/M текст]
 
Описание.
    Эта программа позволяет выбирать элемент из списка элементов
    и возвращает индекс выбранного элемента.
 
Параметры:
   /C    список        Создаваемый список выбираемых элементов.
                       Список по умолчанию "YN".
   /N                  Скрытие списка элементов в приглашении.
                       Перед приглашением выводится сообщение
                       и элементы остаются доступными для выбора.
   /CS                 Включение учета регистра при выборе элементов.
                       По умолчание в программе регистр символов не учитывается.
   /T    тайм-аут       Число секунд перед выбором элемента по умолчанию.
                       Допустимыми являются значения от 0 до 9999.
                       Если указан 0, отсутствует пауза перед выбором
                       элемента по умолчанию.
   /D    элемент       Элемент, выбираемый по умолчанию через nnnn секунд.
                       Символ должен присутствовать в наборе элементов
                       в параметре /C; значение nnnn задается в параметре /T.
   /M    текст         Сообщение, отображаемое перед
                       приглашением. Если не указано, программа
                       выводит только приглашение.
   /?                  Вывод справки по использованию.
 
   Примечание
   Переменная среды ERRORLEVEL получает значение индекса
   клавиши, соответствующей выбранному элементу. Первый элемент
   в списке возвращает значение 1, второй - 2 и т.д.
   Если пользователь нажимает клавишу, не соответствующую допустимому
   выбору, подается звуковой сигнал. Если обнаруживается ошибка,
   возвращается значение ERRORLEVEL 255. Если нажимаются клавиши
   CTRL+BREAK или CTRL+C, программа возвращает значение ERRORLEVEL 0.
   При использовании параметров ERRORLEVEL в пакетной программе их
   следует перечислять по убыванию.
 
Примеры:
   CHOICE /?
   CHOICE /C YNC /M "Y - Да, N - Нет, C - Отмена."
   CHOICE /T 10 /C ync /CS /D y
   CHOICE /C ab /M "a" для выбора параметра 1 и "b" для выбора параметра 2.
   CHOICE /C ab /N /M "a" для выбора параметра 1 и "b" для выбора параметра 2.


Я бы вообще переписал приблизительно так:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
@echo off
set prog1=%windir%\calc.exe
set prog2=%windir%\notepad.exe
 
:m1
Echo.
Echo  #*******************************#
Echo  * Выберите версию вашего HBOOT: *
Echo  *-------------------------------*
Echo  * HBOOT 1.01 - 1                *
Echo  * HBOOT 1.02 - 2                *
Echo  * Выход      - Y                *
Echo  #*******************************#
Echo.
 
choice /c 12Y /n /m "Ваш выбор: "
cls
call :%errorlevel%
if %errorlevel%==-1 goto :eof
goto :m1
 
:1
Call :Run %prog1%
exit /b
 
:2
Call :Run %prog2%
exit /b
 
:3
exit /b -1
 
:Run
tasklist |>nul FindStr /B /L /I /C:%~nx1&&(
  Echo Программа %~nx1 уже запущена!
  exit /b
)
If not exist %1 (
  Echo Файл %1 не найден!
  exit /b  
)
start "" %1
exit /b
1
 Аватар для fly380
41 / 7 / 2
Регистрация: 07.06.2012
Сообщений: 100
10.08.2012, 00:00  [ТС]
Цитата Сообщение от Dragokas Посмотреть сообщение
Я бы вообще переписал приблизительно так:
Выбранная программа стартует, но нет уведомления об этом. Просто если я допустим на пункт 1 повешу *.exe скомпелированый из бат со скрытым выполнением,то пользователь не будет знать что все успешно.
0
1781 / 763 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
10.08.2012, 00:08
Цитата Сообщение от fly380 Посмотреть сообщение
Выбранная программа стартует, но нет уведомления об этом.
Ну так сделайте поиск по процессам с выводом сообщения в случае нахождения нужного.
Bash
1
tasklist | find /i "proga.exe" && echo Программа запущена ^!"
1
 Аватар для fly380
41 / 7 / 2
Регистрация: 07.06.2012
Сообщений: 100
10.08.2012, 00:13  [ТС]
Всем спасибо за помощь! Работает)
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
10.08.2012, 00:46
Так повесьте перед стартом (строки 41-42) информацию, например:
Bash
1
Echo Программа %~nx1 была запущена.
0
 Аватар для fly380
41 / 7 / 2
Регистрация: 07.06.2012
Сообщений: 100
10.08.2012, 00:51  [ТС]
Dragokas да нет все нормально, работает. Запускаю 1.ехе из %Temp% но сообщение нет, а если как в вашем примере из %windir% то есть почему так?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
10.08.2012, 01:11
В моем примере указан полный путь к системной папке, потому что в рабочем каталоге батника нет программы "Калькулятор". Строка 38 мне б не разрешила его запустить.

Цитата Сообщение от fly380 Посмотреть сообщение
Запускаю 1.ехе из %Temp%
Да, конечно. Пропишите полный путь в команде Set.
0
 Аватар для fly380
41 / 7 / 2
Регистрация: 07.06.2012
Сообщений: 100
10.08.2012, 01:14  [ТС]
Цитата Сообщение от Dragokas Посмотреть сообщение
Да, конечно. Пропишите полный путь в команде Set.
Bash
1
set prog1=%Temp%\1.exe
Экзешник стартует но нет уведомления об этом
Bash
1
set prog2=%windir%\1.exe
Экзешник стартует с уведомлением об этом
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
10.08.2012, 01:27
У Вас ехе-шник то где лежит? Откуда запускается сам батник?

Вы дописали строку сообщения о запуске (пост № 9) между строк 41-42?
Ехе-шник не может стартовать без уведомления, если выполнен пред. пункт.

P.S. %windir% - это системная директория, по другому C:\WINOWS
Кстати, %temp% в Win7 и Vista находится обычно здесь: %userprofile%\appdata\local\temp
1
 Аватар для fly380
41 / 7 / 2
Регистрация: 07.06.2012
Сообщений: 100
10.08.2012, 01:34  [ТС]
Цитата Сообщение от Dragokas Посмотреть сообщение
%windir% - это системная директория, по другому C:\WINOWS
Кстати, %temp% в Win7 и Vista находится обычно здесь: %userprofile%\appdata\local\temp
По поводу названия директорий я в курсе)) и если писать (а у меня Win7 ) %temp%\1.ехе экзешник запускается.
P.S спасибо еще раз за помощь и терпение, разобрался!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.08.2012, 01:34
Помогаю со студенческими работами здесь

Два меню для выбора действий
Всем доброй ночи. У меня в бат файле 2 меню, с вариантами выбора в каждом. Первый раз если перейти из 1 во 2 меню, и выбрать там...

Меню выбора курса, группы, перечня студентов
курс выбирается из меню, затем после выбора курса идет выбор группы, а там уже каталог студентов ,при запуске батника мы видим меню из...

Создание последовательных меню для выбора действий и параметров
Доброго времени суток! Срочно нужна помощь создания батника, который будет содержать меню. Мои попытки не увенчались успехом, к сожалению....

Запуск программы через заданный промежуток времени после выбора данного действия в меню
Всем добрый вечер!!! Я написал программу, которая сворачивает форму в трей, при нажатии правой кнопки мыши на неё выпадает меню, в котором...

Пакетный файл для выбора из меню на запуск одного из нескольких редакторов для редактирования требуемого файла
Разработать пакетный файл для выбора из меню на запуск одного из нескольких редакторов (notepad, ncedit и др.) для редактирования...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru