在nant中使用新行回显消息

时间:2009-06-09 13:19:46

标签: nant

有没有人知道如何使用带有新行字符的echo输出消息,在ant世界中我使用$ {line.seperator},但我没有在Nant中看到任何相关属性,也没有提供此信息的任何函数。我也尝试了\ n转义字符,但它是按原样打印的。 下面是一个例子

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

8 个答案:

答案 0 :(得分:20)

我不知道Nant,但新行的XML实体通常是&#xa;

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

使用&#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"?> <!-- ********************** -->