2012-01-17 60 views
0

我有一個在Windows服務器上運行的命令行應用程序。程序運行時,命令提示符保持打開狀態,並且在程序運行時將日誌消息輸出到命令提示符窗口。閱讀Windows命令提示STDOUT

我的需求是讀取程序運行時出現在命令提示符下的消息,然後在消息中出現一組特定的單詞時運行特定命令。

在Windows機器上執行此操作的最簡單方法是什麼? (無需修改應用程序)

回答

3

閱讀這兩個員額會給你的解決方案:

  1. ProcessStartInfo
  2. Capturing console output

想法是從您的新應用程序(用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"); 
}