我从我的应用程序中运行ruby脚本(__FileName),以下是代码。
private void runToolStripMenuItem_Click(object sender, EventArgs e)
{
var psi = new ProcessStartInfo
{
FileName = "ruby.exe",
Arguments = __FileName,
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false
};
var p = Process.Start(psi);
textBox2.Text = p.StandardOutput.ReadToEnd() + p.StandardError.ReadToEnd();
}
在这种情况下,即使在脚本内有 "get "命令,进程窗口也会出现并立即消失。
我如何解决这个问题?
你必须调用
WaitForExit
所以你的代码会被阻塞,直到进程结束。
如果有帮助的话,这里有一个片段,你可以用它来默默地运行一个进程并获取它的输出。