эхо-сообщение с новой строкой в ​​nant

17

Кто-нибудь знает, как выводить сообщение с использованием эха с новым символом линии, в мире муравьев я использовал $ {line.seperator}, но я не вижу никакого связанного с ним свойства в Nant или каких-либо функций, предоставляемых этой информацией , Я также попробовал \ n escape-символ, но это было напечатано как есть. Экзамен ниже

<echo message="spool \n off \n quit" file="${scripts.list}" append="true"/>
    
задан Dinesh Manne 09.06.2009 в 15:19
источник

8 ответов

20

Я не знаю Нанта, но XML-объект для новой строки обычно равен &#xa;

    
ответ дан eduffy 09.06.2009 в 15:25
источник
  • Спасибо, я смог получить его после замены, не понял, как использовать его, даже думал, что знаю, но я хотел бы подождать, чтобы узнать, есть ли у кого-нибудь ответы, касающиеся Нанта –  Dinesh Manne 09.06.2009 в 15:32
  • Это работает! Удивленный нет более ясного метода. –  Thiru 27.02.2010 в 08:05
  • вот что вы получаете для программирования в XML! –  Matthew Lock 09.09.2011 в 05:18
11

В NAnt 0.90 я использовал функцию environment :: newline (), чтобы помещать в новые строки, где я их хотел. Но так как это немного неудобно для использования $ {environment :: newline ()}, я назначил его сокращенному имени свойства, которое я мог бы использовать во всем моем скрипте.

К сожалению, для пользователей 0.86 функция environment :: newline () не была добавлена ​​до 0.90-alpha1.

    
ответ дан MVH 06.05.2010 в 17:17
источник
5

Использовать ${environment::newline()}

Ранее эхо, используемое для добавления новой строки по умолчанию в append, исправлено в последней версии. Итак, теперь эта функция была введена, поэтому вы можете получить переменную окружения для newline и сгенерировать журнал как отформатированный так, как вам нравится.

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

    
ответ дан Sudhanshu 01.05.2012 в 12:02
источник
5

Это будет более убедительно, если вы используете эхо, как показано ниже:

<echo append="true" file="${scripts.list}">
spool
off
quit
</echo>

Нант будет поддерживать новые строки из коробки:)

    
ответ дан head_thrash 06.07.2011 в 21:07
источник
  • Вы должны исправить «/» после атрибута файла в «» ' –  Erhhung 01.10.2012 в 20:23
1

вы можете просто использовать символы новой строки в xml:

<echo message="Line1
Line2"/>
    
ответ дан user324008 23.04.2010 в 10:47
источник
  • Простой ответ :-) –  MrBlueSky 07.10.2011 в 10:49
  • это не сработало. –  Abhilash 22.01.2014 в 11:33
0

Возможно, вы также допустили ошибку, потому что в своем сообщении вы написали line.seperator вместо line.separator

    
ответ дан luckyluke 23.08.2012 в 13:28
источник
0

Если вы отредактируете свой скрипт NAnt в Visual Studio и хотите автоматически форматировать (Ctrl-E D) ваш XML-документ, вы увидите, что если вы используете форму <echo> message </echo> для вывода нескольких строк, Visual Studio будет автоматически - Идентификация вашего текста. Чтобы предотвратить это, вам нужно использовать раздел XML CDATA, например:

   <echo file="${file}"
         append="true">
     <![CDATA[
cmd1 "${arg1}"
cmd2 "${arg2}"
]]>
   </echo>

Это выдержит процесс автоматического форматирования. Вы по-прежнему будете иметь новую строку, если вы не начнете свой текст сразу после тега <![CDATA[ в этой строке.

    
ответ дан Erhhung 01.10.2012 в 20:40
источник
0

В моем случае:

header('Content-Type: application/xml;');       
header('Content-Disposition: attachment; filename="strings.xml"');

//for example
echo '<?xml version="1.0" encoding="utf-8"?>';          
echo '<!-- ********************** -->';         

генерирует <?xml version="1.0" encoding="utf-8"?><!-- ********************** -->

С &#xa; :

header('Content-Type: application/xml;');       
header('Content-Disposition: attachment; filename="strings.xml"');

//for example
echo '<?xml version="1.0" encoding="utf-8"?>&#xa;';         
echo '<!-- ********************** -->';

генерирует <?xml version="1.0" encoding="utf-8"?>&#xa;<!-- ********************** -->

Просто с командой ввода он работает:

    header('Content-Type: application/xml;');       
    header('Content-Disposition: attachment; filename="strings.xml"');

    //for example
    echo '<?xml version="1.0" encoding="utf-8"?>
';          
    echo '<!-- ********************** -->';

генерирует

<?xml version="1.0" encoding="utf-8"?> <!-- ********************** -->

    
ответ дан Leonardo Rignanese 06.05.2016 в 19:43
источник