실행 파일을 호출하고 싶습니다 (필자의 경우 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
(단순히 삭제하지 않고 마지막 모양을 얻기 위해 문자열에 "적용")의 제어 문자를 제거하십시오. 어떻게 할 수 있습니까?
제어 문자가 이스케이프됩니까? (예 : '\ t'대신 '\\ t')? – keyboardP
단순히 문자열을 인쇄하면 최종 텍스트로 보입니다. 따라서 생각하지 않으므로 이스케이프 처리되지 않습니다. –
이스케이프 처리되지 않은 경우 Base64가 아마도 인코딩 되었습니까? 기본적으로 입력 내용을 결정해야합니다. –