Используя ProcessStartInfo
и Process
, я хотел бы запустить программу (например, getdiff.exe), а затем прочитать все выходные данные, которые производит эта программа.Позже я буду использовать данные более конструктивно, прямо сейчас, я просто хочу напечатать данные, чтобы убедиться, что они работают.Однако программа не завершается так, как должна.Кто-нибудь сам почему?Заранее благодарим.
ProcessStartInfo psi = new ProcessStartInfo("getdiff.exe");
psi.Arguments = "DIFF";
psi.UseShellExecute = false;
psi.RedirectStandardInput = true;
psi.WorkingDirectory = "c:\\test";
Process p = Process.Start(psi);
string read = p.StandardOutput.ReadToEnd();
p.WaitForExit();
Console.WriteLine(p);
Console.WriteLine("Complete");
p.Close();
При изменении программы, чтобы она работала правильно:
ProcessStartInfo psi = new ProcessStartInfo("getdiff.exe");
psi.Arguments = "DIFF";
psi.UseShellExecute = false;
psi.RedirectStandardInput = true;
psi.WorkingDirectory = "c:\\test";
Process p = Process.Start(psi);
StreamReader read = p.StandardOutput;
while (read.Peek() >= 0)
Console.WriteLine(read.ReadLine());
Console.WriteLine("Complete");
p.WaitForExit();
p.Close();