как да стартирате множество пакетни файлове в сериен, в среда на командния ред на Windows

Имам пакетен файл,

bat1.bat
bat2.bat

но спира в края на bat1

някакви улики?


person Nick    schedule 15.01.2010    source източник
comment
възможен дубликат на Как да стартирате множество bat файлове в един bat файл   -  person paxdiablo    schedule 28.05.2013


Отговори (5)


Използвайте 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 приключи, управлението на програмата се предава обратно на вашия оригинален пакетен файл.

person Joey    schedule 15.01.2010
comment
вторият пример е идентичен с първия, но разбрах смисъла. Работи перфектно - person Nick; 15.01.2010
comment
Мисля, че във втория пример липсва обаждане. - person Gary van der Merwe; 15.01.2010

Това може да се случи, ако bat1.bat спре необичайно (освен просто да работи до края, като извикване на изход) и можете да заобиколите това, като използвате нов cmd.exe за стартиране на всеки bat файл:

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

Можете да го пропуснете за последния, ако няма да следвате команди във вашия bat файл.

person x4u    schedule 15.01.2010
comment
Не, случва се и ако партидата приключи нормално. Използването на start тук обаче е пресилено. И имате нужда от допълнителен exit в края на под-партидите, за да убиете процеса cmd, който е създаден. В противен случай ще се окажете на нова конзола след стартирането на първата партида. - person Joey; 15.01.2010

За да стартирате множеството .exe файлове наведнъж, първо трябва да създадете .bat файл и след това да добавите всичките си .exe файлове, както е показано по-долу:

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

И след това запазете като something.bat, след което го стартирайте с cmd.

person Riya Ken    schedule 12.06.2012

Нещо друго за търсене:

Имах подобен проблем, при който извиквах множество пакетни файлове с помощта на командата call, но тя не върна контрола към оригиналния .bat файл.

Открих, че имам команда exit в края на груповия файл, която затваря прозореца на DOS, преди да се върна към оригиналния файл .bat и да завърша командите там.

person JIm L    schedule 06.03.2012

Ако искате да стартирате пакетни файлове последователно, ще трябва да поставите "start bat1.bat" в края на всеки файл.

person john calhoun    schedule 08.01.2018