博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#执行DOS命令(CMD命令) (转)
阅读量:5340 次
发布时间:2019-06-15

本文共 1408 字,大约阅读时间需要 4 分钟。

在c#程序中,有时会用到调用cmd命令完成一些功能,于是在网上查到了如下方法,实现了 c#执行DOS命令,并返回结果。

[csharp]
  1.         //dosCommand Dos命令语句 
  2.         publicstring Execute(string dosCommand) 
  3.         { 
  4.             return Execute(dosCommand, 10); 
  5.         } 
  6.         /// <summary> 
  7.         /// 执行DOS命令,返回DOS命令的输出 
  8.         /// </summary> 
  9.         /// <param name="dosCommand">dos命令</param> 
  10.         /// <param name="milliseconds">等待命令执行的时间(单位:毫秒), 
  11.         /// 如果设定为0,则无限等待</param> 
  12.         /// <returns>返回DOS命令的输出</returns> 
  13.         publicstaticstring Execute(string command, int seconds) 
  14.         { 
  15.             string output = ""; //输出字符串 
  16.             if (command != null && !command.Equals("")) 
  17.             { 
  18.                 Process process = new Process();//创建进程对象 
  19.                 ProcessStartInfo startInfo = new ProcessStartInfo(); 
  20.                 startInfo.FileName = "cmd.exe";//设定需要执行的命令 
  21.                 startInfo.Arguments = "/C " + command;//“/C”表示执行完命令后马上退出 
  22.                 startInfo.UseShellExecute = false;//不使用系统外壳程序启动 
  23.                 startInfo.RedirectStandardInput = false;//不重定向输入 
  24. startInfo.RedirectStandardOutput = true; //重定向输出 
  25.                 startInfo.CreateNoWindow = true;//不创建窗口 
  26.                 process.StartInfo = startInfo; 
  27.                 try 
  28.                 { 
  29.                     if (process.Start())//开始进程 
  30.                     { 
  31.                         if (seconds == 0) 
  32.                         { 
  33.                             process.WaitForExit();//这里无限等待进程结束 
  34.                         } 
  35.                         else 
  36.                         { 
  37.                             process.WaitForExit(seconds); //等待进程结束,等待时间为指定的毫秒 
  38.                         } 
  39.                         output = process.StandardOutput.ReadToEnd();//读取进程的输出 
  40.                     } 
  41.                 } 
  42.                 catch 
  43.                 { 
  44.                 } 
  45.                 finally 
  46.                 { 
  47.                     if (process != null
  48.                         process.Close(); 
  49.                 } 
  50.             } 
  51.             return output; 
  52.         } 

 其实还有一种我认为非常好的办法,调用VB的Shell函数,非常简单。

   引入 Microsoft.VisualBasic 开头的几个reference,然后调用下面的代码:

 Microsoft.VisualBasic.Interaction.Shell(path);

   这样就可以了

转载于:https://www.cnblogs.com/nanfei/archive/2012/08/02/2620682.html

你可能感兴趣的文章
css3渐变画斜线 demo
查看>>
JS性能DOM优化
查看>>
设计模式 单例模式 使用模板及智能指针
查看>>
c#的const可以用于引用类型吗
查看>>
手动实现二值化
查看>>
What Linux bind mounts are really doing
查看>>
linux top命令详解
查看>>
博弈论小结
查看>>
模拟Post登陆带验证码的网站
查看>>
NYOJ458 - 小光棍数
查看>>
java中常用方法
查看>>
【Programming Clip】06、07年清华计算机考研上机试题解答(个别测试用例无法通过)...
查看>>
canvas动画
查看>>
4,7周围玩家
查看>>
关于webpack升级过后不能打包的问题;
查看>>
vue - 生命周期
查看>>
Python正则表达式
查看>>
Linux进程间通信--命名管道
查看>>
UVa 10970 - Big Chocolate
查看>>
js输出
查看>>