C#利用Diagnostics 拉取最新代码 示例代码
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代码");
}
}