Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 并行批处理文件之间的通信_Batch File_Batch Processing - Fatal编程技术网

Batch file 并行批处理文件之间的通信

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.bat”,它构建了一组项目。它将被另一个批处理文件“manager.bat”调用。“buildAll.bat”作业在另一个窗口中执行,并输出大量文本。 我希望在原始窗口('manager.bat')中显示生成作业的进度,如下所示:

建筑项目1…完成。 建筑工程2…完成。 建筑工程3…完成。 ... 构建完成


如何在两个作业之间传递构建进度?

例如,临时文件

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不会容易得多。