Comunicação entre arquivos em lote paralelo
-
26-09-2019 - |
Pergunta
Eu tenho um arquivo em lote, 'buildall.bat', que cria um conjunto de projetos. Ele será chamado por outro arquivo em lote, 'gerente.bat'. O trabalho 'buildall.bat' é executado em outra janela e produz muito texto. Quero que o progresso do trabalho de construção seja exibido na janela original ('gerente.bat'), assim:
Projeto de construção 1 ... feito. Projeto de construção 2 ... feito. Projeto de construção 3 ... feito. ... construção concluída.
Como o progresso da construção pode ser comunicado entre os dois empregos?
Solução
Arquivos temporários, por exemplo.
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
...
gerente.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.
...
Obviamente, isso pode ser tornado muito mais poderoso transmitindo informações sobre quais projetos são construídos e assim por diante para o gerente. Mas, em princípio, é facilmente possível.