C#使用Process执行EXP无响应

来源:百度知道 编辑:UC知道 时间:2024/05/29 12:13:10
Process process = new Process();
try
{
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.CreateNoWindow = true;

process.Start();
//Process pro = System.Diagnostics.Process.Start(@"D:\momery.bat");
//cmd = exp ***/***@*** file=****** owner=(***)
process.StandardInput.WriteLine(cmd);
process.StandardInput.WriteLine("exit");
process.WaitForExit();//等待程序执行完退出进程
}
catch (Exception e

我估计的原因是你用 Process 运行的程序正在等待某个确认而导致的挂起现象。

例如:我们在 cmd 控制台中输入“del 文件名”,这是会出现“询问是否删除之类的确认信息”若不输入信息,会一直等待(在编程时,我们需要在这时候 调用 WriteLine 方法,写入确认信息了)。

解决:先把 bat 文件中的命令,粘贴到 cmd 控制台中看看是否有我描述的问题。若仍不能解决,那么请把 cmd 里面输出的信息复制出来,发到我的“百度Hi”上面,我帮你看看。