2012-10-30 60 views

回答

3

的MSBuild 4.0允许使用的财产功能http://msdn.microsoft.com/en-us/library/dd633440.aspx

你可以用它来拆分字符串。然后,您必须将长度减1以获得发生次数。

<Target Name="SplitCount"> 
    <PropertyGroup> 
     <path>test\document\home</path> 
    </PropertyGroup> 

    <PropertyGroup> 
     <test>$(path.Split('\').length)</test> 
    </PropertyGroup> 

    <Message Text="occurrence count: $([MSBuild]::Subtract($(test), 1))"><Message>   
</Target> 
+0

是的,这是完美的!非常感谢! – introiboad

1

MSBuild Community Tasks中,有一个RegexMatch任务可以给你一个列表,然后你可以计算这个列表。

另一种选择是编写自己的自定义任务。然后加一点的LINQ像这样:

string input = "This \\ is \\ a \\ test"; 
var items = (from c in input where c == '\\' select c).ToList(); 
var count = items.Count; 
+0

我使用MSBuild社区任务,所以这可能会更好。如何计算清单上的项目? – introiboad