Rebol -q选项越野车?

时间:2010-12-23 22:54:02

标签: c# rebol

我想将rebol输出重定向到带有-q选项的C#,但我仍然最终得到:

  

REBOL / View 2.7.7.3.1 2010年1月1日   版权所有2000-2010 REBOL   技术。版权所有。   REBOL是REBOL的商标   技术。 WWW.REBOL.COM

     

键入桌面以启动Viewtop。

C#上下文使用的源代码:

Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;   
p.StartInfo.WorkingDirectory = @"C:\rebol";
p.StartInfo.FileName = @"C:\rebol\rebol.exe";
p.StartInfo.Arguments = "-qw --do \"firstname: {world} print build-markup {hello <%firstname%>} \"";    
p.StartInfo.CreateNoWindow = false;
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
MessageBox.Show(output);

如果我直接从Windows运行rebol,我有同样的错误:

  

C:\ rebol \ rebol.exe -q --do“firstname:   {world} print build-markup {hello   &LT;%姓名%GT;}“

将在rebol控制台中输出:

hello world
REBOL/View 2.7.7.3.1 1-Jan-2010
Copyright 2000-2010 REBOL Technologies.  All rights reserved.
REBOL is a trademark of REBOL Technologies. WWW.REBOL.COM


Type desktop to start the Viewtop.
>>

1 个答案:

答案 0 :(得分:1)

如果您使用--do来运行脚本代码,则需要在此脚本的末尾添加quit(或q)以使REBOL / View退出。另外,要阻止Viewtop启动,请添加-v选项。所以以下应该可以解决问题:

rebol.exe -qvw --do "print {hello} quit"

原因是--do和其他解释器选项之间存在奇怪的相互作用。我认为这很可能被认为是一个错误,但无论如何,它已经有一段时间了。