有没有人知道如何使用带有新行字符的echo输出消息,在ant世界中我使用$ {line.seperator},但我没有在Nant中看到任何相关属性,也没有提供此信息的任何函数。我也尝试了\ n转义字符,但它是按原样打印的。 下面是一个例子
<echo message="spool \n off \n quit" file="${scripts.list}" append="true"/>
答案 0 :(得分:20)
我不知道Nant,但新行的XML实体通常是

答案 1 :(得分:11)
在NAnt 0.90中,我使用environment :: newline()函数将新行放入我想要的地方。但是因为使用$ {environment :: newline()}有点笨拙,所以我将它分配给了一个缩短的属性名,我可以在整个脚本中使用它。
不幸的是,对于0.86用户,环境:: newline()函数直到0.90-alpha1才被添加。
答案 2 :(得分:6)
如果使用echo,将会更方便,如下所示:
<echo append="true" file="${scripts.list}">
spool
off
quit
</echo>
Nant将保持新的开箱即用:)
答案 3 :(得分:5)
使用${environment::newline()}
早期的echo用于在append上添加换行符,该换行符已在最新版本中修复。所以,现在已经引入了这个函数,所以你可以获得newline
的环境变量,并按照你喜欢的格式生成日志。
我不得不通过发行说明找到它,所以我认为这可能会让别人付出一些努力来解决这个问题。
答案 4 :(得分:1)
你可以在xml中使用换行符:
<echo message="Line1
Line2"/>
答案 5 :(得分:0)
也许你也犯了一个错误,因为在你的帖子中你写了line.seperator
而不是line.separator
答案 6 :(得分:0)
如果在Visual Studio中编辑NAnt脚本并喜欢自动格式化(Ctrl-E D)XML文档,您将看到如果使用<echo> message </echo>
表单输出多行,Visual Studio也会自动缩进你的文字。为防止这种情况,您需要使用XML CDATA部分,如下所示:
<echo file="${file}"
append="true">
<![CDATA[
cmd1 "${arg1}"
cmd2 "${arg2}"
]]>
</echo>
这将在自动格式化过程中继续存在。除非您在该行的<![CDATA[
标记之后立即开始撰写文字,否则您仍将获得领先的换行符。
答案 7 :(得分: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"?><!-- ********************** -->
使用

:
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"?>
<!-- ********************** -->
只需输入命令即可:
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"?>
<!-- ********************** -->