Как запускать несколько пакетных файлов в последовательном режиме, в среде командной строки 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 файлы, как показано ниже:
D:\Data\Feed.exe Books.xml
D:\Data\Feed.exe Mobile.xml
D:\Data\Feed.exe Clothes.xml
И затем сохраните как something.bat, затем дайте ему пробег с cmd.
Ответ 5
Если вы хотите запускать пакетные файлы последовательно, вам нужно будет поместить "start bat1.bat" в конец каждого файла.