在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;}