OutputDataReceived不适用于Windows git.exe

时间:2012-10-24 11:02:55

标签: c# .net console

我确实有一个奇怪的问题:我尝试通过一个小的c#console-application->

来调用git.exe来克隆一个存储库
Process p = new Process();
p.StartInfo.FileName = "path/to/git/git.exe";
p.StartInfo.Arguments = "clone SomeGitRepoWhichRequiresPassword";
p.StartInfo.UseShellExecute = false;
p.EnableRaisingEvents = true;

p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardError = true;

p.OutputDataReceived += OutputDataReceived;
p.ErrorDataReceived += ErrorDataReceived;
p.Exited += Exited;

p.Start();
p.BeginOutputReadLine();
p.BeginErrorReadLine();
p.WaitForExit();

当我尝试克隆需要用户输入的存储库(例如输入ssh-password)时,没有任何事件被触发,因此我无法以编程方式对该输入做出反应。有没有办法真正获得所有命令输出?

谢谢!

1 个答案:

答案 0 :(得分:0)

为什么要以编程方式输入密码?您可以尝试在Git存储库URL中写密码,如下所示:

git clone https://username:password@github.com/username/repository.git