Автоматизация процесса интерактивной командной строки от C# - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть * .exe с интерактивным текстовым командным интерфейсом, который я хочу автоматизировать с C#.

(1) - это результат C #, а (2) - это результат непосредственного использования * .exe. (последняя пропущена: «подключиться нормально!» и «загрузить успешно!»)

(1) подключиться нормально! обнаружение кабеля в порядке! загрузка успешно!

(2) кабель определен нормально!

Я не знаю, как сделать результат C # таким же, как (2), ниже мой код:

Process p = new Process();
p.StartInfo.FileName = ex.exe; 
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;

p.Start();
p.StandardInput.WriteLine("prj_project open " + "...../bin/store//*****Water.ldf");
p.StandardInput.WriteLine("pgr_project open " + "...../bin/store/imp11/imp11.xcf");
p.StandardInput.WriteLine("pgr_program run");
p.StandardInput.WriteLine("exit");

p.WaitForExit();

var str = p.StandardOutput.ReadToEnd();
var str2 = p.StandardError.ReadToEnd();
Console.WriteLine(str);
Console.WriteLine(str2);
p.Close();

Почему-то я хочу замаскировать некоторые места, надеюсь, что это не вызовет путаницы.

Если вы можете помочь мне решить эту проблему, большое спасибо.

Это сводит меня с ума ... Мне потребовалось почти пятнадцать часов, чтобы решить ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...