Как скопировать вывод процесса - PullRequest
0 голосов
/ 02 ноября 2018

Я хотел спросить вас, у меня есть процесс, который вызывает файл .cmd, и мне нужно, чтобы вывод процесса находился в созданном окне CMD процесса, а также мне нужно скопировать вывод в файл журнала.

Я попытался перенаправить стандартный вывод, но когда я перенаправляю стандартный вывод, вывод не появляется в окне CMD, но я могу записать его в файл журнала. Но мне нужно и то и другое одновременно.

Это решение ниже не работает.

var process = new Process
{
    StartInfo = new ProcessStartInfo
    {
        RedirectStandardOutput = true,
        UseShellExecute = false,
        FileName = exeName,
        Arguments = arguments,
        CreateNoWindow = createNoWindow,
        RedirectStandardError = true,
        RedirectStandardInput = true,
        WorkingDirectory = workingDir ?? Environment.CurrentDirectory,
        WindowStyle = ProcessWindowStyle.Hidden
    }
};

process.Start();
process.OutputDataReceived += (sendingProcess, outLine) =>
{
    outputText.AppendLine(outLine.Data); // capture the output
    Console.Out.WriteLine(outLine.Data); // echo the output

};
process.ErrorDataReceived += (sendingProcess, errorLine) =>
{
    errorText.AppendLine(errorLine.Data); // capture the error
    Console.Error.WriteLine(errorLine.Data); // echo the error
};

process.BeginOutputReadLine();
process.BeginErrorReadLine();
process.WaitForExit();
...