使用C#执行DOS命令 本帖最后由 li_wenbiao 于 2011-12-01 15:00:46 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在c#程序中,有时会用到调用cmd命令完成一些功能,于是在网上查到了如下方法,实现了c#执行DOS命令,并返回结果。 //dosCommand Dos命令语句public string Execute(string dosCommand) { return Execute(dosCommand, 超时时间);} /// <summary> /// 执行DOS命令,返回DOS命令的输出/// </summary> /// <param name="dosCommand">dos命令</param> /// <param name="milliseconds">等待命令执行的时间(单位:毫秒),如果设定为0,则无限等待</param> /// <returns>返回DOS命令的输出</returns> public static string Execute(string command, int seconds) { string output = ""; //输出字符串if (dosCommand != null && dosCommand != "") { Process process = new Process();//创建进程对象ProcessStartInfo startInfo = new ProcessStartInfo();startInfo.FileName = "cmd.exe";//设定需要执行的命令startInfo.Arguments = "/C " + command;//设定参数,其中的“/C”表示执行完命令后马上退出startInfo.UseShellExecute = false;//不使用系统外壳程序启动startInfo.RedirectStandardInput = false;//不重定向输入startInfo.RedirectStandardOutput = true; //重定向输出startInfo.CreateNoWindow = true;//不创建窗口process.StartInfo = startInfo;try { if (process.Start())//开始进程{ if (seconds == 0) { process.WaitForExit();//这里无限等待进程结束} else { process.WaitForExit(seconds); //这里等待进程结束,等待时间为指定的毫秒} output = process.StandardOutput.ReadToEnd();//读取进程的输出} catch { } finally { if (process != null) process.Close();} return output;} System.Diagnostics.ProcessStartInfo ProcessInfo=new System.Diagnostics.ProcessStartInfo();ProcessInfo.FileName="notepad.exe";ProcessInfo.Arguments=strFileName;ProcessInfo.WorkingDirectory="c:\\";System.Diagnostics.Process.Start(ProcessInfo);以前做的一个用记事本打开文件的,应该差不都! 三层架构 正则 请问虚方法和抽象的方法有什么区别? 怎样利用windows服务杀死进程 水晶报表里的汇总求和 遇到一个难题! 急,请问多用户与dll控件通信的问题 新手的苦恼:如何用C#语言实现数据库的恢复!!!!! 绝望C# 如何设置和显示控件上面的微帮助? 使用DataTable更新access C#怎么获取正则表达式分组的组索引
//dosCommand Dos命令语句public string Execute(string dosCommand)
{ return Execute(dosCommand, 超时时间);}
/// <summary> /// 执行DOS命令,返回DOS命令的输出/// </summary> /// <param name="dosCommand">dos命令</param> /// <param name="milliseconds">等待命令执行的时间(单位:毫秒),如果设定为0,则无限等待</param> /// <returns>返回DOS命令的输出</returns> public static string Execute(string command, int seconds)
{ string output = ""; //输出字符串if (dosCommand != null && dosCommand != "")
{ Process process = new Process();//创建进程对象ProcessStartInfo startInfo = new ProcessStartInfo();startInfo.FileName = "cmd.exe";//设定需要执行的命令startInfo.Arguments = "/C " + command;//设定参数,其中的“/C”表示执行完命令后马上退出startInfo.UseShellExecute = false;//不使用系统外壳程序启动startInfo.RedirectStandardInput = false;//不重定向输入startInfo.RedirectStandardOutput = true; //重定向输出startInfo.CreateNoWindow = true;//不创建窗口process.StartInfo = startInfo;try { if (process.Start())//开始进程{ if (seconds == 0)
{ process.WaitForExit();//这里无限等待进程结束} else { process.WaitForExit(seconds); //这里等待进程结束,等待时间为指定的毫秒} output = process.StandardOutput.ReadToEnd();//读取进程的输出} catch { } finally { if (process != null)
process.Close();} return output;}
ProcessInfo.Arguments=strFileName;
ProcessInfo.WorkingDirectory="c:\\";
System.Diagnostics.Process.Start(ProcessInfo);以前做的一个用记事本打开文件的,应该差不都!