Estoy tratando de ejecutar un programa de línea de comandos y tuberías en un archivo. El comando funciona bien en la línea de comandos, pero parece que no puedo hacer que funcione con el objeto Process en C#. Aquí está el comando que estoy emisión:Tubería en un archivo en la línea de comandos usando System.Diagnostics.Process
"C: \ Servers \ CollabNet Subversion Servidor \ svnadmin" carga C: \ repositorios \ testload < C: \ Temp \ test.dump
Esta función funciona bien con todos los otros comandos que los que paso a ella, excepto por el comando anterior:
public static bool ExecuteSvnCommand(string command, string arguments, out string result, out string errors)
{
bool retval = false;
string output = string.Empty;
string errorLines = string.Empty;
Process svnCommand = null;
var psi = new ProcessStartInfo(command);
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.UseShellExecute = false;
psi.CreateNoWindow = true;
try
{
Process.Start(psi);
psi.Arguments = arguments;
svnCommand = Process.Start(psi);
StreamReader myOutput = svnCommand.StandardOutput;
StreamReader myErrors = svnCommand.StandardError;
svnCommand.WaitForExit();
if (svnCommand.HasExited)
{
output = myOutput.ReadToEnd();
errorLines = myErrors.ReadToEnd();
}
// Check for errors
if (errorLines.Trim().Length == 0)
{
retval = true;
}
}
catch (Exception ex)
{
string msg = ex.Message;
errorLines += Environment.NewLine + msg;
}
finally
{
if (svnCommand != null)
{
svnCommand.Close();
}
}
result = output;
errors = errorLines;
return retval;
}
he probado varias combinaciones diferentes de esta función, pero no puedo conseguir que esto funcione. Sigo recibiendo un mensaje "El sistema no puede encontrar el archivo especificado". Llevo aquí una semana, y creo que necesito algunos ojos para ver lo que estoy haciendo mal.