Задать вопрос
sputnickk
@sputnickk

Как передать данные из окна cmd.exe?

Из программы (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 - тоже. Куда еще копать?
  • Вопрос задан
  • 740 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
У вас в исходниках utf8, а в WinXP cp1251, например, а местами даже cp866.

Нужно указывать правильную кодировку.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы