Рубрики
cmd \ vbs \ scripts

Как из одного bat-файла запустить другой

1


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

Для примера создадим два bat файла. 
Один с именем 1.bat и содержащий всего одну команду 

call 2.bat

Второй с именем 2.bat и также содержащий одну команду 

pause

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

2

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

Для этого используется команда start Исправим в файле 1.bat строку на
start 2.bat

и запустим файл 1.bat 

Теперь открылось окно, в котором для продолжения надо нажать любую кнопку, а окно основного пакетного файла (1.bat) отработав закрылось.
Таким образом, для вызова из одного пакетного файла другого, без остановки работы первого пакетного файла, нужно применять команду start.
Рассмотренные команды start и call могут использоваться не только для запуска других пакетных файлов, но и для запуска любых приложений или открытия файлов.
Например, команда start log.txt, находящаяся в теле пакетного файла, откроет файл log.txt в Notepad без остановки работы пакетного файла.