ファイルでコマンドラインプログラムとパイプを実行しようとしています。このコマンドはコマンドラインでうまく動作しますが、C#のProcessオブジェクトで動作するようには見えません。System.Diagnostics.Processを使用してコマンドラインでファイルをパイプする
"C:\サーバー\ CollabNetのSubversionのサーバーの\ svnadminは" ロード・C:\リポジトリ\ TestLoad < C:\一時\のtest.dump
この関数は、すべてで正常に動作しますが、ここで私が発行していますコマンドです私はそれに渡す他のコマンドは、上記のコマンドを除い:
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;
}
私は、この機能のいくつかの異なる組み合わせを試してみたが、私はこれを動作させることはできません。私は "システムが指定されたファイルを見つけることができません"というメッセージを得続けます。私はこれで約1週間はいましたが、私が何をやっているのかを見るためには、私はいくつかの目を必要としています。