Tôi đang cố chạy chương trình dòng lệnh và đường ống trong tệp. Lệnh này hoạt động tốt trên dòng lệnh, nhưng tôi không thể làm cho nó hoạt động với đối tượng Process trong C#. Dưới đây là các lệnh tôi phát hành:Đường ống trong một tệp trên dòng lệnh bằng System.Diagnostics.Process
"C: \ Servers \ CollabNet Subversion Server \ svnadmin" tải C: \ Repositories \ TestLoad < C: \ Temp \ test.dump
Chức năng này hoạt động tốt với tất cả các lệnh khác mà tôi chuyển cho nó, ngoại trừ lệnh trên:
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;
}
Tôi đã thử một số kết hợp khác nhau của chức năng này, nhưng tôi không thể làm việc này được. Tôi tiếp tục nhận được thông báo "Hệ thống không thể tìm thấy tệp được chỉ định". Tôi đã ở đây khoảng một tuần nay, và tôi nghĩ rằng tôi cần một vài bộ mắt để xem tôi đang làm gì sai.