Читать командную строку Windows STDOUT - PullRequest
0 голосов
/ 17 января 2012

У меня есть приложение командной строки, которое работает на сервере Windows.Командная строка остается открытой, когда программа работает, и сообщения журнала выводятся в окно командной строки в качестве функции программы.

Мне нужно прочитать сообщения, которые появляются в командной строке при запуске программы,а затем выполните определенные команды, если в сообщениях указан определенный набор слов.

Какой самый простой способ сделать это на компьютере с Windows?(без изменения приложения)

1 Ответ

3 голосов
/ 17 января 2012

Чтение этих двух постов даст вам решение:

  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");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...