Связь между параллельными пакетными файлами
-
26-09-2019 - |
Вопрос
У меня есть пакетный файл, «buildall.bat», который создает набор проектов. Он будет вызван другим пакетным файлом, «Manager.bat». Работа «Buildall.bat» выполняется в другом окне и выводит много текста. Я хочу, чтобы прогресс задания построения будет отображаться в исходном окне («Manager.bat»), как это:
Строительный проект 1 ... Готово. Строительный проект 2 ... Готово. Строительный проект 3 ... Готово. ... построить завершено.
Как продвижение построения может быть передано между двумя заданиями?
Решение
Например, временные файлы.
buildall.cmd
del /Q %TEMP%\Project*Done>nul 2>&1
...
rem build project 1
copy nul %TEMP%\Project1Done >nul
rem build project 2
copy nul %TEMP%\Project2Done >nul
...
Manager.cmd.
...
<nul set /p X=Building project 1 ...
:waitforproject1
if exists %TEMP%\Project1Done goto project1done
ping -n 1 localhost >nul 2>&1
goto waitforproject1
:project1done
echo done.
<nul set /p X=Building project 2 ...
:waitforproject2
if exists %TEMP%\Project2Done goto project2done
ping -n 1 localhost >nul 2>&1
goto waitforproject2
:project2done
echo done.
...
Конечно, это может быть сделано гораздо более мощным путем ретрансляции информации о том, какие проекты построены и так далее для менеджера. Но в принципе это легко возможно.