Как запустить несколько командных файлов в последовательном, в среде командной строки Windows - PullRequest
22 голосов
/ 15 января 2010

У меня есть командный файл,

bat1.bat
bat2.bat

но останавливается в конце bat1

какие-нибудь подсказки?

Ответы [ 5 ]

40 голосов
/ 15 января 2010

Использование 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 голосов
/ 15 января 2010

Это может произойти, если bat1.bat останавливается ненормально (кроме просто запуска до конца, например, вызова exit), и вы можете обойти это, используя свежий cmd.exe для запуска каждого файла bat:

start /b /wait bat1.bat
start /b /wait bat2.bat

Вы можете опустить его для последнего, если в вашем файле bat не будет следовать командам.

1 голос
/ 08 января 2018

Если вы хотите запустить пакетные файлы в последовательности, вам нужно будет поставить «start bat1.bat» в конце каждого файла.

1 голос
/ 12 июня 2012

Чтобы запустить несколько файлов .exe за один раз, сначала вам нужно создать файл .bat, а затем добавить все ваши файлы .exe, как показано ниже:

  D:\Data\Feed.exe Books.xml
  D:\Data\Feed.exe Mobile.xml
  D:\Data\Feed.exe Clothes.xml

А затем сохраните как-нибудь .bat, затем запустите его с помощью cmd.

1 голос
/ 06 марта 2012

Что-то еще, чтобы искать:

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

Я обнаружил, что у меня была команда exit в конце командного файла, которая закрывала окно DOS перед тем, как вернуться к исходному файлу .bat и закончить там команды.

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