эхо сообщение с новой строкой в ​​nant - PullRequest
18 голосов
/ 09 июня 2009

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

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

Ответы [ 8 ]

20 голосов
/ 09 июня 2009

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

11 голосов
/ 06 мая 2010

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

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

6 голосов
/ 06 июля 2011

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

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

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

5 голосов
/ 01 мая 2012

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

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

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

1 голос
/ 23 апреля 2010

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

<echo message="Line1
Line2"/>
0 голосов
/ 06 мая 2016

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

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"?> <!-- ********************** -->

0 голосов
/ 01 октября 2012

Если вы отредактируете скрипт 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[ в этой строке.

0 голосов
/ 23 августа 2012

Может быть, вы тоже ошиблись, потому что в своем посте вы написали line.seperator вместо line.separator

...