Batch - дождаться окончания процесса - PullRequest
0 голосов
/ 15 октября 2018

У меня есть скрипт .bat, который работает следующим образом:

  • Запускает сценарии сборки для каждого проекта веб-пакета в каталоге
  • Ожидание 30 секунд
  • Запускаетсервер, на котором размещен проект
  • Открывает Chrome с вкладкой для каждого проекта

Я бы не хотел ждать 30 секунд и запустить сервер, как только все процессы сборки будут завершены.Как я могу это сделать?

Это код моего пакетного сценария:

@echo off
cd webapp
setlocal enabledelayedexpansion
set params=
FOR /D %%G IN ("*") DO (
 cd %%G
 @echo on
 svn update
 call npm install
 start /B npm run dev
 @echo off
 set params=!params! http://localhost:9000/%%G
 cd ..
)
cd ..
timeout /t 30 /nobreak
@echo on
start /B node core/server.js
start chrome /new-window !params!

РЕДАКТИРОВАТЬ: очень сложная вещь в том, что npm run dev являетсябесконечный процесс: он продолжает работать и продолжает следить за изменениями в коде.Вот его код:

node_modules/.bin/webpack --config dev.config.js --watch

РЕДАКТИРОВАТЬ N.2:

Чтобы узнать, когда завершится процесс сборки (@SomethingDark), я могу изменить свой код следующим образом:

@echo off
cd webapp
setlocal enabledelayedexpansion

#here I don't have the watch option, so it closes on build finished
set params=
FOR /D %%G IN ("*") DO (
 cd %%G
 @echo on
 svn update
 call npm install
 start /B npm run build-dev
 @echo off
 set params=!params! http://localhost:9000/%%G
 cd ..
)
cd ..
timeout /t 30 /nobreak
@echo on
start /B node core/server.js
start chrome /new-window !params!


    #here I have the watch option, so it keeps alive
    FOR /D %%G IN ("*") DO (
     cd %%G
     @echo on
     start /B npm run dev
     @echo off
     cd ..
    )
...