2010-05-12 5 views
0

J'ai un fichier de commandes, 'buildAll.bat', qui construit un ensemble de projets. Il sera appelé par un autre fichier batch, 'manager.bat'. Le travail 'buildAll.bat' s'exécute dans une autre fenêtre et génère beaucoup de texte. Je souhaite que la progression du travail de construction soit affichée dans la fenêtre d'origine ('manager.bat'), comme ceci:Communication entre fichiers batch parallèles

Projet de construction 1 ... terminé. Projet de construction 2 ... terminé. Projet de construction 3 ... terminé. ... Construction terminée.

Comment la progression de la construction peut-elle être communiquée entre les deux tâches?

+0

Vous pouvez envisager une mise à niveau de CMD.EXE vers PowerShell. Ce genre de chose devient beaucoup plus facile si vous utilisez un environnement de script créé ce siècle. –

+0

@John: Je ne pense pas que ce soit plus facile avec PowerShell, en fait. – Joey

Répondre

3

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 à le directeur. Mais en principe, c'est facilement possible.