ComHelper.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System.Diagnostics;
  2. namespace MSBuild
  3. {
  4. /// <summary>
  5. /// cmd类
  6. /// </summary>
  7. public class ComHelper
  8. {
  9. private static string CmdPath = @"C:\Windows\System32\cmd.exe";
  10. /// <summary>
  11. /// 执行命令
  12. /// </summary>
  13. /// <param name="cmd"></param>
  14. /// <param name="output"></param>
  15. public static void RunCmd(string cmd, out string output)
  16. {
  17. cmd = cmd.Trim().TrimEnd('&') + "&exit";//说明:不管命令是否成功均执行exit命令,否则当调用ReadToEnd()方法时,会处于假死状态
  18. using (var p = new Process())
  19. {
  20. p.StartInfo.FileName = CmdPath;
  21. p.StartInfo.UseShellExecute = false; //是否使用操作系统shell启动
  22. p.StartInfo.RedirectStandardInput = true; //接受来自调用程序的输入信息
  23. p.StartInfo.RedirectStandardOutput = true; //由调用程序获取输出信息
  24. p.StartInfo.RedirectStandardError = true; //重定向标准错误输出
  25. p.StartInfo.CreateNoWindow = true; //不显示程序窗口
  26. p.Start();//启动程序
  27. //向cmd窗口写入命令
  28. p.StandardInput.WriteLine(cmd);
  29. p.StandardInput.AutoFlush = true;
  30. //获取cmd窗口的输出信息
  31. output = p.StandardOutput.ReadToEnd();
  32. p.WaitForExit();//等待程序执行完退出进程
  33. p.Close();
  34. }
  35. }
  36. }
  37. }