1. 程式人生 > 實用技巧 >C# 操作CMD命令是否通過,解決p.StandardError.ReadToEnd()假死狀態

C# 操作CMD命令是否通過,解決p.StandardError.ReadToEnd()假死狀態

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