Параметр Rebol -q глючит?

Я хочу перенаправить вывод rebol на C # с параметрами -q, но в итоге получаю:

REBOL / View 2.7.7.3.1 1 января 2010 г. Авторские права 2000-2010 REBOL Technologies. Все права защищены. REBOL - торговая марка REBOL Technologies. WWW.REBOL.COM

Введите desktop, чтобы запустить 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);

Если я запускаю rebol прямо из Windows, у меня такая же ошибка:

C: \ rebol \ rebol.exe -q --do "firstname: {world} print build-markup {hello‹% firstname%>} "

выведет в консоль ребола:

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.
>>

person Rebol Tutorial    schedule 23.12.2010    source источник
comment
Что произойдет, если вы запустите ту же команду из окна консоли?   -  person    schedule 24.12.2010
comment
Кроме того, вы получаете стандартный вывод перед WaitForExit.   -  person    schedule 24.12.2010
comment
см. мое обновление сообщения ниже: у меня такая же ошибка, если я запускаю из оболочки dos.   -  person Rebol Tutorial    schedule 24.12.2010


Ответы (1)


Если вы используете --do для запуска кода сценария, вам нужно будет добавить quit (или q) в конец этого сценария, чтобы REBOL / View завершил работу. Кроме того, чтобы предотвратить запуск Viewtop, добавьте параметр -v. Итак, следующее должно помочь:

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

Причина в странном взаимодействии между --do и другими опциями интерпретатора. Я думаю, это вполне можно считать ошибкой, но, в любом случае, так было уже довольно давно.

person earl    schedule 24.12.2010
comment
Спасибо, что сохранили мой счастливый конец года :) Да, это ошибка для меня, было бы здорово, если бы ошибка была решена или задокументирована, но RT так много нужно сделать! - person Rebol Tutorial; 26.12.2010