Critical Thinking

Nothing is impossible

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: :: :: 管理 ::
使用 Microsoft Build Engine (MSBuild) 中的项列表时,有时以易于读取的方式显示那些项列表的内容很有用。或者,您执行的任务可能用到以特殊的分隔符字符串分隔的项列表。在这两种情况中,可以为项列表指定分隔符字符串。

用分号分隔列表中的项

默认情况下,MSBuild 用分号分隔列表中的项。例如,请看一个含有以下值的 Message 元素:

<Message Text="This is my list of TXT files: @(TXTFile)"/>

@(TXTFile) 项列表包含项 App1.txt、App2.txt 和 App3.txt 时,消息为:

This is my list of TXT files: App1.txt;App2.txt;App3.txt

用分号分隔项

  • 使用类似下面这样的项表示法:

    @(TXTFile)

指定自定义分隔符

如果要更改默认行为,您可以指定自己的分隔符。指定项列表分隔符的语法是:

@(ItemListName, '<separator>')

分隔符可以是单个字符或字符串,并且必须括在单引号中。

在项之间插入逗号和空格

  • 使用类似下面这样的项表示法:

    @(TXTFile, ', ')

示例

在此示例中,Exec 任务运行 findstr 工具以查找文件 Phrases.txt 中的指定文本字符串。在 findstr 命令中,搜索字符串由 /c: 开关指示,因此在 @(Phrase) 项列表的项之间插入项分隔符 /c:

对于此示例,等效的命令行命令是:

findstr /i /c:hello /c:world /c:msbuild phrases.txt

 1<Project DefaultTargets = "Find"    xmlns="http://schemas.microsoft.com/developer/msbuild/2003" > 2
 2    <ItemGroup>
 3        <Phrase Include="hello"/>
 4        <Phrase Include="world"/>
 5        <Phrase Include="msbuild"/>
 6    </ItemGroup>
 7
 8    <Target Name = "Find">
 9        <!-- Find some strings in a file -->
10        <Exec Command="findstr /i /c:@(Phrase, ' /c:') phrases.txt"/>
11    </Target>
12</Project>
posted on 2007-08-16 18:49  Jeffrey Ye  阅读(352)  评论(0编辑  收藏  举报