4

私は非常に単純な test.rb ファイルを持っています:

puts "Hello World"

このファイルを c# 内で実行したい、例えば:

var runtime = Ruby.CreateRuntime();
runtime.ExecuteFile("C:\test.rb");

「Hello World」をキャプチャするにはどうすればよいですか?

4

4 に答える 4

2

ScriptRuntimeには、ScriptIOオブジェクトを返すIOプロパティがあります。その上でSetOutputを呼び出して、出力をリダイレクトできます。他の人が言及しているように、ユーザーがConsole.WriteLineを直接呼び出す場合に呼び出すConsole.SetOutもあります。ScriptIOを使用することの良い点は、異なるScriptRuntimeが異なる出力に書き込む複数のスクリプトを持つことができることです。

于 2010-03-14T20:51:08.343 に答える
0

ここに示すように、標準出力をリダイレクトして C# プログラムで読み取ることができます。

于 2010-03-14T04:46:22.333 に答える
0

できることの 1 つは、Console.setOut および/または Console.setErr を ExecuteFile の前に呼び出し、その後に再度呼び出すことです。初めて出力を選択したストリームにリダイレクトしてから、以前の値に戻します。

于 2010-03-14T05:47:12.020 に答える
-1

この投稿はあなたの質問に答えていると思います。

于 2010-03-14T05:29:28.330 に答える