C# 操作CMD命令是否通過,解決p.StandardError.ReadToEnd()假死狀態
阿新 • • 發佈:2020-09-08
/// <summary> /// 檢測CMD命令是否通過 /// </summary> /// <param name="command">CMD命令</param> /// <returns></returns> public static bool CmdError(string command, out string msg) { bool flag = true; Process p = new Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardError = true; p.StartInfo.CreateNoWindow = true; p.Start(); p.StandardInput.AutoFlush = true; p.StandardInput.WriteLine(command); p.StandardInput.WriteLine("exit"); p.StandardInput.Close(); //要關閉,否則會造成假死狀態msg = p.StandardError.ReadToEnd(); if (!string.IsNullOrEmpty(msg)) { flag = false; //自定義Bool,如果為真則表示CMD命令出錯 } p.WaitForExit(); p.Close(); return flag; }