我用System.Diagnostics.Process操作cmd.exe,但是在读取cmd.exe中的反馈信息时有些问题。cmdProcess = new System.Diagnostics.Process();
cmdProcess.StartInfo.UseShellExecute = false;
cmdProcess.StartInfo.RedirectStandardInput = true;
cmdProcess.StartInfo.RedirectStandardOutput = true;
cmdProcess.StartInfo.RedirectStandardError = true;
cmdProcess.StartInfo.CreateNoWindow = true;
cmdProcess.StartInfo.FileName = "cmd.exe";
cmdProcess.Start();
while(***) //***是一个结束条件
{
cmdProcess.StandardInput.WriteLine(***); //发送一条命令,比如“DIR”之类
//在这里要读入结果,不知如何实现
}
cmdProcess.StandardInput.WriteLine("exit");也就是要读取命令发出之后的反馈,但是发现用readToEnd()的话一定要在输入exit,也就是cmd结束后才能读到,否则程序就一直暂停在那句上。
有没有别的办法,望指点。谢谢
cmdProcess.StartInfo.UseShellExecute = false;
cmdProcess.StartInfo.RedirectStandardInput = true;
cmdProcess.StartInfo.RedirectStandardOutput = true;
cmdProcess.StartInfo.RedirectStandardError = true;
cmdProcess.StartInfo.CreateNoWindow = true;
cmdProcess.StartInfo.FileName = "cmd.exe";
cmdProcess.Start();
while(***) //***是一个结束条件
{
cmdProcess.StandardInput.WriteLine(***); //发送一条命令,比如“DIR”之类
//在这里要读入结果,不知如何实现
}
cmdProcess.StandardInput.WriteLine("exit");也就是要读取命令发出之后的反馈,但是发现用readToEnd()的话一定要在输入exit,也就是cmd结束后才能读到,否则程序就一直暂停在那句上。
有没有别的办法,望指点。谢谢
用不用Exit应该对你的程序没什么影响吧。
比如输入dir,开个线程用ReadLine读到线程暂停,再输入别的命令后readline就读不出东西了.