1.c# 调用CMD窗体执行命令 阻塞执行,并在最后执行完后一次性输出执行结果
public static string runcmd(string cmd) { //string strinput = Console.Readline(); Process p = new Process(); //设置要启动的应用程序 p.StartInfo.filename = "cmd.exe"; //是否使用 *** 作系统shell启动 p.StartInfo.UseShellExecute = false; // 接受来自调用程序的输入信息 p.StartInfo.RedirectStandardinput = true; //输出信息 p.StartInfo.RedirectStandardOutput = true; // 输出错误 p.StartInfo.RedirectStandardError = true; //不显示程序窗口 p.StartInfo.CreateNowindow = true; p.StartInfo.windowstyle = Processwindowstyle.normal; //启动程序 p.Start(); //向cmd窗口发送输入信息 p.Standardinput.Writeline(cmd + "&exit"); p.Standardinput.autoFlush = true; //获取输出信息 string strOuput = p.StandardOutput.ReadToEnd(); //等待程序执行完退出进程 p.WaitForExit(); p.Close(); return strOuput; //Console.Writeline(strOuput); }
2. 调用CMD窗体执行命令 实时获取执行结果并输出
public string runcmd(string cmd) { try { //string strinput = Console.Readline(); Process p = new Process(); //设置要启动的应用程序 p.StartInfo.filename = "cmd.exe"; //是否使用 *** 作系统shell启动 p.StartInfo.UseShellExecute = false; // 接受来自调用程序的输入信息 p.StartInfo.RedirectStandardinput = true; //输出信息 p.StartInfo.RedirectStandardOutput = true; // 输出错误 p.StartInfo.RedirectStandardError = true; //不显示程序窗口 p.StartInfo.CreateNowindow = true; p.StartInfo.windowstyle = Processwindowstyle.normal; p.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived); p.ErrorDataReceived += new DataReceivedEventHandler(p_ErrorDataReceived); //启用Exited事件 p.EnableRaisingEvents = true; p.Exited += new EventHandler(Process_Exited); //启动程序 p.Start(); p.BeginoutputReadline(); p.BeginErrorReadline(); p.Standardinput.autoFlush = true; //输入命令 p.Standardinput.Writeline(cmd); p.Standardinput.Writeline("exit"); //获取输出信息 // string strOuput = p.StandardOutput.ReadToEnd(); //等待程序执行完退出进程 //p.WaitForExit(); //p.Close(); // return strOuput; return string.Empty; } catch (Exception ex) { throw ex; } } private voID p_OutputDataReceived(object sender,DataReceivedEventArgs e) { if (e.Data != null) { Console.Writeline(e.Data); } } private voID p_ErrorDataReceived(object sender,DataReceivedEventArgs e) { if (e.Data != null) { Console.Writeline(e.Data); } } private voID Process_Exited(object sender,EventArgs e) {总结
Console.Writeline("命令执行完毕");
}
以上是内存溢出为你收集整理的c# 调用CMD窗口执行命令全部内容,希望文章能够帮你解决c# 调用CMD窗口执行命令所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)