2009-06-09 4 views
17

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

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

ответ

20

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

+0

Спасибо, я был в состоянии получить его после замены, не возникла идея использовать его даже мысли я знал это, однако я хотел бы подождать, чтобы узнать, есть ли у кого-нибудь какие-либо ответы, касающиеся Nant –

+1

Это работает! Удивленный нет более ясного метода. – Thiru

+3

вот что вы получаете для программирования в XML! –

1

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

<echo message="Line1 
Line2"/> 
+0

Простой ответ :-) – MrBlueSky

+0

это не сработало. – Abhilash

11

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

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

5

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

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

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

+0

Вы должны исправить «/» после атрибута файла в «» ' – Erhhung

5

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

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

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

0

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

0

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

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

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

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

Смежные вопросы