阅读Windows命令提示符STDOUT

时间:2012-01-17 09:45:21

标签: windows command-prompt

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

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

在Windows机器上执行此操作最简单的方法是什么? (不修改应用程序)

1 个答案:

答案 0 :(得分:3)

阅读这两篇文章将为您提供解决方案:

  1. ProcessStartInfo
  2. Capturing console output
  3. 我们的想法是从你的新应用程序(用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");
    }