2014-03-19 9 views
1

遇到了下面的帖子 MSBuild ReadLinesFromFile all text on one line我如何提取多行變量的MSBuild

從此我一直無法弄清楚如何做到以下幾點。

如果我想要ReadAllLines但是想要將每行存儲在不帶分號的其他變量中,該怎麼辦?

<ReadLinesFromFile File="@(File)"> 
    <Output TaskParameter="Lines" ItemName="FileContents" /> 
</ReadLinesFromFile> 
<Line1>"What should I do here?" </Line1> 
<Line2>"What should I do here?" </Line2> 

回答

1

將內容讀入屬性,然後拆分該屬性並從中獲取項目。這當然要求您事先知道該文件將具有(至少)與您擁有屬性一樣多的行。

<Target Name="ReadFile"> 
    <ReadLinesFromFile File="$(MyInputFile)"> 
    <Output TaskParameter="Lines" PropertyName="FileContents"/> 
    </ReadLinesFromFile> 
</Target> 

<Target Name="CreateProperties" DependsOnTargets="ReadFile"> 
    <PropertyGroup> 
    <Line0>$([System.String]::Copy($(FileContents)).Split(';')[ 0 ])</Line0> 
    <Line1>$([System.String]::Copy($(FileContents)).Split(';')[ 1 ])</Line1> 
    </PropertyGroup> 
</Target> 
+0

這很好。非常感謝! – Yam