Анонимный пользователь
Дополнительно
Как запустить несколько файлов .BAT внутри одного файла .BAT
Я пытаюсь заставить мой commit-build.bat
выполнять другие .BAT файлы как часть нашего процесса сборки.
Содержимое commit-build.bat
:
"msbuild.bat"
"unit-tests.bat"
"deploy.bat"
Это кажется достаточно простым, но commit-build.bat
выполняет только первый элемент в списке (msbuild.bat
).
Я запускал каждый из этих файлов отдельно без проблем.
650
16
Используйте:
Если не использовать CALL, текущий пакетный файл останавливается, а вызываемый пакетный файл начинает выполняться. Это своеобразное поведение, восходящее к ранним дням MS-DOS.
Все остальные ответы являются правильными: использовать звонок. Например:
История
В Древней DOS версии не было возможности рекурсивно выполнить пакетные файлы. Затем команда вызова, который называют еще одну оболочку cmd, чтобы выполнить пакетный файл и вернул выполнения вызывающему оболочки cmd, когда закончите.
Очевидно, в более поздних версиях никакой другой оболочки cmd больше не было необходимости.
В первые дни много пакетных файлов зависит от того, что вызов пакетного файла не вернется в вызывающий пакетный файл. Изменить это поведение без дополнительного синтаксиса, разбило бы многих систем, таких как системы пакетной меню (используя пакетные файлы для меню структуры).
Как и во многих случаях с Microsoft, поэтому обратной совместимости является причиной такого поведения.
Советы
Если ваши пакетные файлы, содержащие пробелы в именах, используйте кавычки вокруг имени:
Кстати: если вы не имеете имена всех пакетных файлов, можно также использовать для того чтобы сделать это (это не гарантирует правильный порядок пакетный файл вызовов; он следит за порядком файловой системы):
Вы можете также реагировать на errorlevels после звонка. Использование:
чтобы восстановить значение errorlevel. 0 обозначает правильное выполнение. В вызове пакетного файла вы можете реагировать с помощью
Если значение errorlevel 1` Если у вас есть старые окна, чем это NT4/2000/XP, чтобы поймать все errorlevels 1 и больше.
Чтобы контролировать поток пакетный файл, есть Гото :-(
Как отметили другие: посмотреть на системы сборки для замены пакетных файлов.
Если мы хотим открыть несколько командных строк, то мы могли бы использовать
/К
: является обязательной, которая будет исполнять.Запускает много командных строк может быть сделано, как показано ниже.
Попробуйте:
Вы звоните несколько партий в попытке скомпилировать программу. Я беру за аксиому, что если возникает ошибка:
'||' тесты для ошибки выше, чем 0. Таким образом, все партии называются в порядке, но остановится на любую ошибку, оставив на экране для вас, чтобы увидеть сообщения об ошибках.
Если у нас есть два пакетных скриптах, ААА.летучая мышь и ВВВ.BAT и вызов, как показано ниже
При выполнении скрипта, он будет звонить в ААА.летучая мышь во-первых, ждать нить ААА.летучая мышь завершить, и звонить ВВВ.летучая мышь.
Но если вы Don'т хотите ждать ААА.bat, чтобы прекратить называть БББ.летучая мышь, попробуйте использовать пуск команда:
Экзамен:
Для вызова
.файл BAT
в `.bat файл, используйте(Да, это глупо, было бы больше смысла, если вы могли бы назвать это с `Foo.летучая мышь, как можно из командной строки, но правильный способ-это использовать "вызов".)
Глядя на ваши имена, вы рассматривали с помощью инструмента построить как Нант или муравей (Java-версия). Вы'll получить гораздо больше контроля, чем с bat файлы.
Если это не't работа, замените "старт" с
вызов
или попробуйте это:Если вы хотите открыть много пакетных файлов сразу вы можете использовать команды вызова. Тем не менее, команда вызова закрывает текущий файл BAT и уходит к другому. Если вы хотите открыть сразу все, вы можете хотеть попробовать это:
И так далее и повторите пуск команду cmd в
"
призыв`..." и однако для многих файлов. Это работает для окна&ампер;усилитель; nbsp;7, но я не уверен, о других системах.Запуск нескольких скриптов в одном я была такая же проблема. Я держал его умирать в первый раз не понимая, что он выходил на первый сценарий.
Я удалил все 11 моих скриптов линии выхода и попытался снова и все 11 побежал по одному за раз в том же окне командной строки.
Просто используйте команду
звонок
! Вот пример:С правильной ссылкой (Это может быть иногда сложно):
1-й параметр - название (пустая в данном случае)<БР> 2-й арг - /D задает начальный каталог, может быть опущен, если требуется, чтобы текущая работа реж (таких как "%~dp0" в)<БР> 3й параметр - команда для запуска "и УМК.ехе" и<БР> 4-е арг - аргументы команды, с удвоенными цитаты для аргументов в этом (это, как вы бежать цитаты в кавычки в пакете)
Вот мой способ =
Помочь =
КМД /?
Следующий решена моя проблема: