2012-10-30 58 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