我想调用一个可执行文件(在我的例子中,这是 PNGOUT.exe)并从标准输出中获取它的输出。但结果很棘手 - 应用程序使用某种控制字符来替换以前打印的输出(显示进度),C# 类愉快地记录它们,当我想分析输出字符串时,我很头疼。(我什至花了一段时间才弄清楚我的字符串发生了什么)
我正在使用以下方法调用可执行文件:
public static string RunPNGOut(string pngOutPath, string target) {
var process = new Process {
StartInfo = {
UseShellExecute = false,
RedirectStandardOutput = true,
CreateNoWindow = true,
FileName = pngOutPath,
Arguments = '"' + target + '"'
}
};
process.Start();
var result = process.StandardOutput.ReadToEnd();
process.WaitForExit();
return result;
}
我需要使用仅捕获控制台中文本的最终状态的不同方法,或者以某种方式摆脱其中的控制字符result
(不仅仅是删除它们,而是将它们“应用”到字符串以实现最终外观)。怎么做到呢?