static void DiagnosticTest() { Process p; ProcessStartInfo psi; psi = new ProcessStartInfo("sh.exe"); psi.Arguments += "--login -i"; psi.UseShellExecute = false; psi.RedirectStandardOutput = true; //容許重定向標準輸出 psi.RedirectStandardInput = true; //接受來自調用程序的輸入信息 psi.RedirectStandardError = true; psi.WindowStyle = ProcessWindowStyle.Hidden; p = Process.Start(psi); p.StandardInput.WriteLine("cd D://"); p.StandardInput.WriteLine("cd D:/git/Component/"); p.OutputDataReceived += new DataReceivedEventHandler(OnDataReceived); p.BeginOutputReadLine(); p.BeginErrorReadLine(); //p.StandardInput.WriteLine("git fetch --all"); //p.StandardInput.WriteLine("git reset --hard origin/master"); p.StandardInput.WriteLine("git pull"); p.Close(); } private static void OnDataReceived(object Sender, DataReceivedEventArgs e) { if (e.Data == "Already up-to-date.") { Console.WriteLine("已拉取最新的Component代碼"); } }