La comunicación entre los archivos por lotes paralelos
-
26-09-2019 - |
Pregunta
Tengo un archivo por lotes, 'buildall.bat', que construye un conjunto de proyectos. Se llamará por otro archivo por lotes, 'manager.bat'. El 'buildall.bat' ejecuta el trabajo en otra ventana y da salida a una gran cantidad de texto. Quiero que el progreso del trabajo de construcción que se mostrará en la ventana original ( 'manager.bat'), así:
Proyecto de construcción 1 ... hecho. La construcción del proyecto 2 ... hecho. La construcción del proyecto 3 ... hecho. ... Construcción completada.
¿Cómo se puede comunicar el progreso de construcción entre los dos puestos de trabajo?
Solución
Los archivos temporales, por ejemplo.
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.
...
Por supuesto, esto se puede hacer mucho más potente por la transmisión de información sobre qué proyectos se construyen y así sucesivamente con el gerente. Pero, en principio, es fácilmente posible.