Из программы (Frame 3.5 winforms) вызываю batch-файл и читаю результат выполнения, а также ошибку, если она случается.
var processInfo = new ProcessStartInfo("cmd.exe", "/c " + "c:/app/remote.bat");
processInfo.RedirectStandardError = true;
processInfo.RedirectStandardOutput = true;
var process = Process.Start(processInfo);
string error = process.StandardError.ReadToEnd();
переменную
error
отправляю на удаленную машину:
File.AppendAllText("\\remoteserver\\app\error.txt" , "ОШИБКA: " + error + Environment.NewLine, Encoding.UTF8);
На вин 10 - все красиво, ошибка читабельна (кириллица), запускаю на WinXP:
ОШИБКA: "uppdate" Ґ пў«пҐвбп ўгв॥© Ё«Ё ўҐиҐ©
Є®¬ ¤®©, ЁбЇ®«пҐ¬®© Їа®Ја ¬¬®© Ё«Ё Ї ЄҐвл¬ д ©«®¬.
В батнике кодировка UTF, в error.txt - тоже. Куда еще копать?