Как запускать несколько пакетных файлов в последовательном режиме, в среде командной строки Windows
У меня есть пакетный файл,
bat1.bat
bat2.bat
но он останавливается в конце bat1
любые подсказки?
Ответ 1
Используйте call:
call bat1.cmd
call bat2.cmd
По умолчанию, когда вы просто запускаете командный файл из другого элемента управления, он не будет возвращаться к вызывающему. Для этого вам нужно использовать call.
В принципе, если у вас такая партия:
@echo off
echo Foo
batch2.cmd
echo Bar
то он будет выводить только
Foo
Если вы пишете его как
@echo off
echo Foo
call batch2.cmd
echo Bar
однако он выведет
Foo
Bar
поскольку после batch2 завершается, программный контроль передается обратно в исходный пакетный файл.
Ответ 2
Это может произойти, если bat1.bat останавливается ненормально (кроме как только работает до конца, как вызов exit), и вы можете обойти это, используя новый cmd.exe для запуска каждого файла bat:
start /b /wait bat1.bat
start /b /wait bat2.bat
Вы можете опустить его для последнего, если в вашем файле bat не будут следовать команды.
Ответ 3
Что-то еще нужно искать:
У меня была аналогичная проблема, когда я вызывал несколько командных файлов с помощью команды call, но не возвращал элемент управления в исходный .bat файл.
Я узнал, что у меня была команда exit в конце командного файла, которая закрыла окно DOS перед возвратом в исходный файл .bat и завершая там команды.
Ответ 4
Чтобы запустить несколько файлов .exe за один раз, сначала вам нужно создать файл .bat, а затем добавить все ваши .exe файлы, как показано ниже: