Batch file 并行批处理文件之间的通信
我有一个批处理文件“buildAll.bat”,它构建了一组项目。它将被另一个批处理文件“manager.bat”调用。“buildAll.bat”作业在另一个窗口中执行,并输出大量文本。 我希望在原始窗口('manager.bat')中显示生成作业的进度,如下所示: 建筑项目1…完成。 建筑工程2…完成。 建筑工程3…完成。 ... 构建完成Batch file 并行批处理文件之间的通信,batch-file,batch-processing,Batch File,Batch Processing,我有一个批处理文件“buildAll.bat”,它构建了一组项目。它将被另一个批处理文件“manager.bat”调用。“buildAll.bat”作业在另一个窗口中执行,并输出大量文本。 我希望在原始窗口('manager.bat')中显示生成作业的进度,如下所示: 建筑项目1…完成。 建筑工程2…完成。 建筑工程3…完成。 ... 构建完成 如何在两个作业之间传递构建进度?例如,临时文件 buildAll.cmd del /Q %TEMP%\Project*Done>nul 2>
如何在两个作业之间传递构建进度?例如,临时文件 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
...
...
<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.
...
manager.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
...
...
<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.
...
。。。
nul 2>&1
转到等待项目1
:project1done
回音完毕。
nul 2>&1
转到等待项目2
:project2done
回音完毕。
...
当然,这可以通过向经理传递关于构建了哪些项目的信息等而变得更加强大。但是原则上很容易实现。您可以考虑从CMDE EXE升级到PuthS壳。如果您使用的是本世纪创建的脚本环境,这类事情会变得容易得多。@John:事实上,我认为使用PowerShell不会容易得多。