0

重複の可能性:
Redirect Standard Output Efficiently in .NET
.NET アプリケーションからのコンソール出力のキャプチャ (C#)

私はこのようなものを実行する方法を知っています:

SomeEXE inputfile.txt

コマンド プロンプトで C# を使用します。

私が抱えている問題は、SomeEXE が別のコマンド プロンプトを開き、inputfile.txt を指定して出力を書き込むことです。

これらの出力を取得することは一般的に可能ですか? ありがとう。

これが私の現在のコードです:

System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();

startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/C SomeEXE inputfile.txt";
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;

process.StartInfo = startInfo;
process.Start();

// Now use streams to capture the output
StreamReader outputReader = process.StandardOutput;

process.WaitForExit();

String line = outputReader.ReadToEnd();
4

1 に答える 1

1
ProcessStartInfo processStartInfo = new processStartInfo("SomeEXE", "inputfile.txt");
processStartInfo.UseShellExecute = false;
processStartInfo.ErrorDialog = false;

// Here is where you grab the output:
processStartInfo.RedirectStandardOutput = true;

Process process = new Process {
  StartInfo = processStartInfo
};
process.Start();

// Now use streams to capture the output
StreamReader outputReader = process.StandardOutput;

process.WaitForExit();

これで、必要に応じて を読むことができますoutputStream

これがあなたの言いたいことだと思います。また、ここにドキュメントがありますRedirectStandardOutput

また、生成されたファイルへのパスがわかっている場合 (SomeEXE別のファイルへの書き込みを想定) 、実行File.Open後にその内容にアクセスするために使用できますSomeEXE(実行後まで待つことを忘れないでくださいSomeEXE)。それを読んで)。

于 2012-09-11T14:37:36.007 に答える