La communication entre les fichiers de traitement par lots parallèles
-
26-09-2019 - |
Question
J'ai un fichier batch, « buildAll.bat », qui construit un ensemble de projets. Il sera appelé par un autre fichier batch, « manager.bat ». Le travail « buildAll.bat » Les dans une autre fenêtre exécute et génère beaucoup de texte. Je veux que le progrès du travail de construction à afficher dans la fenêtre d'origine ( « manager.bat »), comme ceci:
Projet de construction 1 ... fait. Projet de renforcement des 2 ... fait. Projet de renforcement 3 ... fait. ... Build completed.
Comment les progrès de la construction peut être communiquée entre les deux emplois?
La solution
Les fichiers temporaires, par exemple.
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.
...
Bien sûr, cela peut être beaucoup plus puissant en relayant des informations sur les projets construits et ainsi de suite au gestionnaire. Mais en principe, il est facilement possible.