Как запустить несколько файлов .BAT в файле .BAT - PullRequest
630 голосов
/ 09 июля 2009

Я пытаюсь заставить мой commit-build.bat выполнять другие файлы .BAT как часть нашего процесса сборки.

Содержимое commit-build.bat:

"msbuild.bat"
"unit-tests.bat"
"deploy.bat"

Это кажется достаточно простым, но commit-build.bat выполняет только первый элемент в списке (msbuild.bat).

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

Ответы [ 14 ]

4 голосов
/ 08 мая 2013

Если вы хотите открыть много командных файлов одновременно, вы можете использовать команду вызова. Однако команда call закрывает текущий файл bat и переходит к другому. Если вы хотите открыть много сразу, вы можете попробовать это:

@echo off
start cmd "call ex1.bat&ex2.bat&ex3.bat"

И так далее, или повторите запуск cmd "call ..." для любого количества файлов. Это работает для Windows 7 , но я не уверен насчет других систем.

2 голосов
/ 22 сентября 2012

Запуск нескольких скриптов в одном У меня была такая же проблема. Я продолжал заставлять его умирать на первом, не понимая, что это выход на первом сценарии.

:: OneScriptToRunThemAll.bat
CALL ScriptA.bat
CALL ScriptB.bat
EXIT

:: ScriptA.bat
Do Foo
EXIT
::ScriptB.bat
Do bar
EXIT

Я удалил все 11 строк EXIT своих сценариев и попытался снова, и все 11 работали по порядку в одном и том же командном окне.

:: OneScriptToRunThemAll.bat
CALL ScriptA.bat
CALL ScriptB.bat
EXIT

::ScriptA.bat
Do Foo

::ScriptB.bat
Do bar
1 голос
/ 17 мая 2019

При правильном цитировании (иногда это бывает сложно):

start "" /D "C:\Program Files\ProgramToLaunch" "cmd.exe" "/c call ""C:\Program Files\ProgramToLaunch\programname.bat"""

1-й аргумент - Название (в данном случае пустое)
2nd arg - / D указывает начальный каталог, может быть опущен, если требуется текущий рабочий каталог (например, «% ~ dp0»)
3-й аргумент - команда для запуска, "cmd.exe"
4-й аргумент - аргументы команды, с двойными кавычками для аргументов внутри нее (так вы можете экранировать кавычки в кавычках в пакете)

1 голос
/ 13 декабря 2016

Просто используйте команду call! Вот пример:

call msbuild.bat
call unit-tests.bat
call deploy.bat
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...