首页 > 解决方案 > 将多个 bat 文件的输出重定向到一个控制台窗口

问题描述

我出于开发目的在本地运行多个微服务。目前我正在通过 .bat 脚本执行此操作,我正在调用其他 .bat 文件,这些文件正在启动我的服务。它启动多个控制台窗口,这在输出之间导航并不方便。

正在启动服务的脚本现在如下所示:

start cmd /k call api_one.bat
start cmd /k call api_two.bat
...

在 api_xxx.bat 中,我使用我的 api 启动 iisexpress。

我正在寻找一种让它更舒适的方法。例如,通过将所有输出重定向到单个输出,例如使用前缀来识别脚本输出行的来源。

标签: windowspowershellbatch-filecmd

解决方案


我有一个类似的问题,我从一个批处理文件调用一个批处理文件,该批处理文件启动另一个批处理文件..解释起来很复杂,但让我给你一些帮助我的代码:

来自 test.bat 的内容:

set logname=.\log.log

if exist %logname% ( type nul > %logname% 
)

echo Now starting example.bat>>%logname%

call C:\example.bat >>%logname%

echo finished example.bat>>%logname%

所以现在这里是example.bat的内容:

echo starting integrated commands

start /b cmd /k "C:\example2.bat"

[some code to check for a process that starts in example2.bat] 

echo finished integrated commands

并且 example2.bat 的内容可以是您想要的任何内容,并且也显示在日志文件中。

请注意,我的 example2.bat 最后有一个出口,因为 example.bat 会检查 example2.bat 是否正在运行。只有当它完成时,它才会继续执行脚本。对于我自己来说,我将所有 3 个脚本中的所有内容都放入了一个日志文件中。


推荐阅读