我正在尝试使用 C# 代码备份我的存储库
Process svnCommand = null;
var psi = new ProcessStartInfo("svnadmin");
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;
psi.UseShellExecute = false;
psi.Arguments= @"dump C:RepositoriesMyrepo > C:tempmyrepodumpfile.dump";
using (svnCommand = Process.Start(psi))
{
var myoutput = svnCommand.StandardOutput;
var myerror = svnCommand.StandardError;
Debug.Write("Output :" + Environment.NewLine +
Environment.NewLine + myoutput.ReadToEnd() +
Environment.NewLine + "Error :" +
Environment.NewLine + Environment.NewLine +
myerror.ReadToEnd());
svnCommand.Close();
}
当我从命令行使用 dump 命令时
svnadmin dump C:RepositoriesMyrepo > C:tempmyrepodumpfile.dump
它工作正常,但是当我尝试通过上面给出的 C# 代码使用它时,它给出的错误为
svnadmin: E205000: Try 'svnadmin help' for more info
svnadmin: E205000: Too many arguments
我的SVN信息 :
SVN 版本 1.7.5环境变量aslo集(我可以直接从cmd使用sv)
似乎无法弄清楚问题出在哪里
>
是命令行的一个功能;从 C# 启动进程时不能使用它。
>
的作用是将进程写入 StandardOutput 的输出写入文件。这也是您需要在程序中实现的内容,例如
var psi = new ProcessStartInfo("svnadmin");
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;
psi.UseShellExecute = false;
psi.Arguments= @"dump C:RepositoriesMyrepo";
using (var svnCommand = Process.Start(psi))
{
var myoutput = svnCommand.StandardOutput;
File.WriteAllText(@"C:tempmyrepodumpfile.dump", myoutput.ReadToEnd());
svnCommand.WaitForExit();
}