C# 控制台来自多个批处理文件的相同输出

C# console same output from multi batch files

我需要一个控制台应用程序来记录来自其他外部应用程序的一些事件。 控制台应用程序的目的是在屏幕上显示外部应用程序在每个步骤中正在做什么。 此外部应用程序只能调用带参数的 exe。

目标是:

但控制台应用程序在每次调用时关闭并重新打开。 我需要一个技巧来让控制台应用程序等待消息并在不关闭的情况下显示它,但我现在真的不知道从哪里开始看。

它可能是非常轻量级的解决方案,无需任何安装。

谢谢。

编辑

外部应用程序(静默运行)只能在每个步骤执行命令"run program ..."(带参数的命令行)。

在每一步中,我都必须向我的控制台应用程序发送一些信息以向用户写入输出以及其他一些信息。我想要一个独特的输出,而不是每一步都需要一个新的控制台应用程序...

主要想法是让后台 运行 控制台应用程序等待来自外部应用程序的消息以发送信息。

它是一种带有参数的启动控制台应用程序,不要停止它并使用新参数回忆它,但我认为这是不可能的。

我无法在机器上安装工具,因为解决方案可能部署在我公司的许多设备上,我无法在每台设备上安装服务或数据库..

您将使用哪种解决方案?控制台应用程序可以等待传入消息并捕获它们吗?

对此有多种不同的方法;

  • 进程间通信 - 此处可能有些矫枉过正
  • 共享文件 - 简单但容易出错
  • 其他共享存储(数据库或消息服务)- 可能是我推荐的方式

使用数据库方法,您的应用程序会将每个作业的 'logs' 插入数据库 table。然后,控制台应用程序可以使用简单的 While 循环进行循环,读取行并显示它们。这更具可扩展性,因为您可以使用日志来重新启动作业等。