阅读Windows命令提示标准输出

我有一个在Windows服务器上运行的命令行应用程序。 当程序运行时,命令提示符保持打开状态,当程序运行时,日志消息被输出到命令提示符窗口。

我的需要是读取程序运行时出现在命令提示符下的消息,然后在消息中出现特定的一组字时运行特定的命令。

什么是在Windows机器上这样做的最简单的方法? (无需修改应用程序)

Solutions Collecting From Web of "阅读Windows命令提示标准输出"

阅读这两个帖子将给你解决方案:

  1. 的ProcessStartInfo
  2. 捕获控制台输出 。

这个想法是从你的新应用程序(用C#编写的)运行你的应用程序(而不是修改它),并将其输入输出重定向到这里,随意读写。

一个例子可能是:

Process proc; void RunApp() { proc = new Process(); proc.StartInfo.FileName = "your_app.exe"; proc.StartInfo.Arguments = ""; // If needed proc.StartInfo.UseShellExecute = false; proc.StartInfo.RedirectStandardInput = true; proc.StartInfo.RedirectStandardOutput = true; proc.OutputDataReceived += new DataReceivedEventHandler(InterProcOutputHandler); proc.Start(); proc.WaitForExit(); } void InterProcOutputHandler(object sendingProcess, DataReceivedEventArgs outLine) { // Read data here ... // Send command if necessary proc.StandardInput.WriteLine("your_command"); }