0

C# コンソール プログラム内で exe プログラムを実行しています。これを CMD 経由で実行すると、独自のログに書き込み、CMD ウィンドウにいくつかのメッセージが表示されます。プログラム内で standardOutput を読み取ると、CMD メッセージを表示できますが、プロセスが書き込むべきログが作成されていません。つまり、外部プロセスは、このブラック ボックス ユーティリティに組み込まれている独自のログに書き込むため、コンソール プログラムから実行したいのですが、ログは作成されません。誰かがこの問題に遭遇し、解決方法について何か提案がありますか? このログはユーティリティのログであるため、失うことはできません。私のプログラムとは別です。これが私のコードの抜粋です:

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.FileName = processName;
startInfo.RedirectStandardOutput = true;
startInfo.Arguments = " " + dbName + " " + pw + " " + clientFile;
try
{
  using (Process exeProcess = Process.Start(startInfo))
  {
    using (StreamReader reader = exeProcess.StandardOutput)
    {
       exeProcess.Start();
       exeProcess.WaitForExit();
       string result = reader.ReadToEnd();
       Console.WriteLine(result);
    }
  }
}
catch (Exception e)
{
  Console.WriteLine("Error: " + e);
}
4

1 に答える 1

0

プロセスが終了したら、結果を読み取る必要があります。

 exeProcess.Start();
 exeProcess.WaitForExit();
 string result = reader.ReadToEnd();
 Console.WriteLine(result);
于 2013-09-06T15:11:54.990 に答える