问题描述
privatevoidchkdsk_Click(objectsender,EventArgse){try{Threadt=newThread(newParameterizedThreadStart(this.chkDsk));t.Start(diskList.Text+yesNo.Text);}catch(Exceptionex){msg.Text+=ex.ToString()+"rn";}}publicvoidchkDsk(objectdata1){stringcmdtext1="chkdsk"+data1.ToString().Substring(0,2)+"/x";charcmdtext2;stringyesno=data1.ToString().Substring(3,1);if(yesno=="是"){cmdtext2='y';}else{cmdtext2='n';}Processp=newProcess();p.StartInfo.FileName="cmd.exe";p.StartInfo.UseShellExecute=false;//关闭Shell的使用p.StartInfo.RedirectStandardInput=true;//重定向标准输入p.StartInfo.RedirectStandardOutput=true;//重定向标准输出p.StartInfo.RedirectStandardError=true;//重定向错误输出p.StartInfo.CreateNoWindow=true;p.Start();p.StandardInput.WriteLine(cmdtext1);p.StandardInput.WriteLine(cmdtext2);p.StandardInput.WriteLine("exit");StreamReaderSR=p.StandardOutput;while(!SR.EndOfStream){msg.Text+=SR.ReadLine()+"rn";}}diskList.Text是盘符yesNo.Text是是否问题是现在《是否计划在下一次系统重新启动时检查此卷?(Y/N)》输入n或者y之后,无法继续正常的输入输出了造成无法关闭cmd进程,但是n和y是有效果的,只是无法继续输入输出,我感觉是程序被定位到了chkdsk进程而非cmd,我通过任务管理器强制关闭cmd进程之后,才会正常输出本来应该输出的一行我的代码上传到了百度云,希望大神帮我看看,非常感谢http://pan.baidu.com/s/1sjqI6sd