У меня есть два командных файла в том же каталоге, который я хочу запустить. Но я не хочу просто начинать оба. Я хочу открыть пакетный файл, попросить l или f, и если я скажу l, он откроет пакетный файл ex1.bat, и если я скажу 2 open ex2.batПакетный файл, который открывает один из двух пакетных файлов
ответ
Вы не сказали, какую версию Windows вы используете используя, поэтому я предполагаю, что у вас есть либо Win7, либо Win8.
@echo off
setlocal
:loop
set /p "Input=Enter l, f or simply [ENTER] to exit :<space>"
if "%Input%" equ "" exit /b
if /i "%Input%" equ "l" (
call ex1.bat
exit /b
)
if /i "%Input%" equ "f" (
call ex2.bat
exit /b
)
goto loop
Обратите внимание на < пространство> в коде, приведенном выше. На самом деле это символ пробела, а не строка «< space>».
(Update:. Я изменил if {%Input%}
линии с помощью фигурных скобок с помощью двойных кавычек, как if "%Input%"
, который более устойчив к ошибочному вводимому пользователю, так как foxidrive правильно указал)
Если вы новичок в пакетные файлы то этот вариант может быть проще понять.
@ECHO OFF
:start
CLS
ECHO l = Launch ex1.bat
ECHO f = Launch ex2.bat
SET /p option=Enter Selection:
IF "%option%"=="l" start ex1.bat
IF "%option%"=="f" start ex2.bat
GOTO start
Это предполагает, что у вас есть ex1.bat и ex2.bat в том же каталоге, что и данный пакетный-файл.
Эта партия откроет ex1.bat или ex2.bat в новом окне, но сама останется открытой. Вы можете изменить его, чтобы «закрыть» после выбора, удалив слово «старт», как так ...
IF "%option%"=="l" ex1.bat
IF "%option%"=="f" ex2.bat
.
Объяснение:
@ECHO OFF
Это выключает отображение команд и будет отображаться только на экране выходы
:start
Устанавливает мейкера, что пакетный файл может вернуться.
CLS
Очищает окно любого предыдущего текста, прежде чем продолжить
ECHO l = Launch ex1.bat
ECHO f = Launch ex2.bat
ECHO является команда, которая говорит ему, чтобы отобразить на экране следующий текст.
SET /p option=Enter Selection:
Создает переменную с именем «вариант», но просит вас, что хранить в нем, отображая сообщение «Enter Selection:»
IF "%option%"=="l" start ex1.bat
IF "%option%"=="f" start ex2.bat
Проверяет, что вводился в командной строке для опции «» переменная ... если она была «l», тогда она запустит файл ex1.bat. Если бы это было «е», то он будет работать файл с именем ex2.bat
GOTO start
Сообщает, что вернуться к маркеру под названием «старт» и запустить снова с этой точки.
- 1. Пакетный файл для вызова всех других пакетных файлов
- 2. несколько пакетных файлов в один пакетный засаде и failmail
- 3. Windows, пакетный файл для итеративного вызова других пакетных файлов
- 4. Пакетный скрипт для запуска пакетных xml-файлов из папки
- 5. Пакетный файл для запуска других пакетных файлов с параметрами
- 6. Возвращает значение из пакетных файлов (BAT-файл) в текстовый файл
- 7. Пакетный файл, перемещающийся ОДИН файл
- 8. Пакетный файл для переименования файлов
- 9. Выполнение пакетных файлов последовательно
- 10. Закрытие нескольких пакетных файлов
- 11. Запуск нескольких пакетных файлов одновременно
- 12. расширение каталога пакетных файлов
- 13. написать пакетный файл, который открывает хром URL-адрес
- 14. пакетных файлов папка и текстовый файл Создание
- 15. вызов пакетных файлов внутри nant
- 16. Как создать пакетный файл, который открывает 32bit CMD подскажите как администратор, чтобы запустить другой пакетный файл
- 17. пакетный файл, который создает новый пакетный файл
- 18. Открыть один из серии файлов, используя пакетный файл
- 19. Пакетный файл, который анализирует и представляет данные из файлов csv
- 20. Выполнение вложенных пакетных файлов
- 21. Список пакетных файлов
- 22. Пакетный файл, который проверяет другой процесс пакетного файла
- 23. Запуск случайный пакетный файл из определенной папки
- 24. Объединение двух файлов в один файл
- 25. Один пакетный файл - несколько команд - нет ожидания
- 26. пакетный файл: переписать один файл в несколько существующих файлов
- 27. Запуск нескольких пакетных файлов из одной мастер-партии
- 28. DOS пакетных файлов и переменных
- 29. Пакетный файл, который открывает INI файл с именем пользователя и паролем учетных
- 30. Как создать пакетный файл, который создает пакетный файл, который создает пакетный файл
«set/p» Input = Введите l, f или просто [ENTER], чтобы выйти: «' <- это будет работать (с двойными кавычками), а также защищает входные данные от ядовитых символов и пробелов.Аналогично, ваши '{}' должны быть двойными кавычками для обеспечения одинаковой защиты. – foxidrive
@foxidrive двойные кавычки в операторах if в нашем примере безвредны, но это плохая идея сделать это generallu. Если вы проверите вход или env. переменная, которая уже содержит двойные кавычки и пробелы (например, имена файлов), тогда if с двойными кавычками будет расти вверх ... – elgonzo
@foxidrive, что вы имеете в виду с символами яда? Амперсанд, кавычки и т. Д.?? Кавычки в команде 'set/p' не действуют (они также не вредны). Или я что-то пропустил? – elgonzo