C#呼叫Windows CMD命令並,返回輸出結果或錯誤資訊

千丶吻發表於2018-11-19
 1 public static string InvokeExcute(string Command)
 2 {
 3     Command = Command.Trim().TrimEnd(`&`) + "&exit";
 4     using (Process p = new Process())
 5     {
 6         p.StartInfo.FileName = "cmd.exe";
 7         p.StartInfo.UseShellExecute = false;        //是否使用作業系統shell啟動
 8         p.StartInfo.RedirectStandardInput = true;   //接受來自呼叫程式的輸入資訊
 9         p.StartInfo.RedirectStandardOutput = true;  //由呼叫程式獲取輸出資訊
10         p.StartInfo.RedirectStandardError = true;   //重定向標準錯誤輸出
11         p.StartInfo.CreateNoWindow = true;          //不顯示程式視窗
12         p.Start();//啟動程式
13         //向cmd視窗寫入命令
14         p.StandardInput.WriteLine(Command);
15         p.StandardInput.AutoFlush = true;
16         //獲取cmd視窗的輸出資訊
17         StreamReader reader = p.StandardOutput;//擷取輸出流
18         StreamReader error = p.StandardError;//擷取錯誤資訊
19         string str = reader.ReadToEnd() + error.ReadToEnd();
20         p.WaitForExit();//等待程式執行完退出程式
21         p.Close();
22         return str;
23     }
24 }

 

相關文章