Подтвердить что ты не робот

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

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

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

Ответ 1

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

Ответ 2

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

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

Ответ 3

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

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

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

Ответ 4

Используйте ${environment::newline()}

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

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

Ответ 5

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

<echo message="Line1
Line2"/>

Ответ 6

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

Ответ 7

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

Ответ 8

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

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