主题:用Process类连续调用Dos命令的问题
下面代码只能显示一个Dos命令的结果,想连续显示出第二个Ping命令的结果应该怎么写?
static void Main(string[] args)
{
string output;
using (System.Diagnostics.Process p = new System.Diagnostics.Process())
{
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments= "/c dir";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.Start();
output = p.StandardOutput.ReadToEnd();
Console.WriteLine(output);
p.StandardInput.WriteLine("exit");
p.StandardInput.WriteLine("ping 127.0.0.1");
p.StandardInput.WriteLine("exit");
output = p.StandardOutput.ReadToEnd();//接受不到ping的结果
Console.WriteLine(output);
p.WaitForExit();
}
}
static void Main(string[] args)
{
string output;
using (System.Diagnostics.Process p = new System.Diagnostics.Process())
{
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments= "/c dir";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.Start();
output = p.StandardOutput.ReadToEnd();
Console.WriteLine(output);
p.StandardInput.WriteLine("exit");
p.StandardInput.WriteLine("ping 127.0.0.1");
p.StandardInput.WriteLine("exit");
output = p.StandardOutput.ReadToEnd();//接受不到ping的结果
Console.WriteLine(output);
p.WaitForExit();
}
}