2009-06-09 15 views
17

Czy ktoś wie, jak wypisać wiadomość za pomocą echa z nowym znakiem linii, w świecie mrówek użyłem $ {line.seperator}, ale nie widzę żadnej powiązanej właściwości w Nant, ani dowolna z funkcji podanych w tych informacjach. Próbowałem też znaku escape, ale został wydrukowany w obecnej formie. examaple jest poniżejWiadomość echo z nową linią w nant

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

Odpowiedz

20

Nie wiem Nant, ale jednostka XML dla nowego wiersza jest zazwyczaj &#xa;

+0

Dzięki, udało mi się dostać po substytucji, nie mieli pojęcia, aby używać go nawet nie pomyślał Wiedziałem o tym, jednak chciałbym poczekać, aby zobaczyć, czy ktoś ma jakieś odpowiedzi specyficzne dla Nant –

+1

To działa! Zaskoczony, że nie ma jaśniejszej metody ... – Thiru

+3

to właśnie dostajesz do programowania w XML! –

1

można po prostu użyć nowej linii w xml:

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

Najprostsza odpowiedź :-) – MrBlueSky

+0

to nie zadziałało. – Abhilash

11

W NAnt 0.90, użyłem funkcji environment :: newline() do wstawienia nowych linii w miejscu, gdzie je chciałem. Ale ponieważ użycie polecenia $ {environment :: newline()} jest trochę niewygodne, przypisałem je do skróconej nazwy właściwości, której mogę używać w całym skrypcie.

Niestety dla 0,86 użytkowników, środowisko :: nowalinia function() nie został dodany do 0,90-alfa1.

5

To będzie bardziej dogodna, jeśli używasz echo, jak pokazano poniżej:

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

Nant utrzymają newlines wyjęciu z pudełka :)

+0

Powinieneś naprawić "/" po atrybucie pliku na "" " – Erhhung

5

użytkowania ${environment::newline()}

Wcześniejszy echa wykorzystane, aby dodać newline domyślnie na append, który został poprawiony w najnowszym wydaniu. Tak więc teraz ta funkcja została wprowadzona, więc możesz pobrać zmienną środowiskową dla newline i wygenerować dziennik w sformatowany sposób.

Musiałem przejść przez notatki do wydania, aby je znaleźć, więc pomyślałem, że może to uratować kogoś innego, aby uzyskać odpowiedź.

0

Może również popełnił błąd, ponieważ w swoim poście napisałeś line.seperator zamiast line.separator

0

przypadku edycji skryptu Nant w Visual Studio i jak na auto-format (Ctrl-E D) dokumentu XML zobaczysz, że jeśli użyjesz formularza <echo> message </echo> do wyprowadzenia wielu linii, Visual Studio automatycznie również wyświetli tekst. Aby temu zapobiec, musisz użyć sekcji CDATA XML, takiej jak ta:

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

To przetrwa proces automatycznego formatowania. Nadal będziesz kończył z wiodącym znakiem nowej linii, chyba że zaczniesz tekst zaraz po tagu <![CDATA[ na tej linii.

0

W moim przypadku:

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

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

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


Z &#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 '<!-- ********************** -->'; 

generuje <?xml version="1.0" encoding="utf-8"?>&#xa;<!-- ********************** -->


prostu z polecenia wprowadź to działa:

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

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

generuje

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