実行可能ファイル (私の場合、これは PNGOUT.exe) を呼び出して、その出力を stdout から取得したいと考えています。アプリケーションはある種の制御文字を使用して、以前に印刷された出力 (進行状況の表示) を置き換え、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
削除する必要があります(単純に削除するのではなく、文字列に「適用」して最終的な外観を実現します)。どうすればそれができますか?