2013-10-12 37 views
0

我有一個工作目錄 文件夾1,文件夾2,folder3,folder4 .. folder10使用文件輸入到複製特定的文件夾用的MSBuild

我有一個項目(文件夾)的文本文件的名稱中它:

文件內容:

folder1 
folder2 
folder3 

我想從文件中讀取行,然後只有那些文件夾複製到一個新的文件夾,同時保持目錄結構。

mynewfolder{ folder1, folder2, folder3 } 

會有多個文件輸入。得到的工作目錄(我會打電話給父母)將這樣的改變:

parent before msbuild: 
parent{ folder1, folder2, .., folder10, mybuild.xml} 

parent after msbuild: 
parent{ folder1, folder2, .., folder10, mybuild.xml, 
     mynewfolder{folder1, folder2, folder3}, 
     myothernewfolder{folder5, folder7, folder9} } 

我已經能夠獲得最接近的是要複製到mynewfolder所有文件夾1,文件夾2,和folder3的內容(所以,結構丟失)

我試着使用FindInList,我已經使用變換方法試過,我也試着調整一切來匹配這個例子: MSBuild - Comparing ItemGroups metadata

但我沒有有很多運氣。

我只有5個小時的MSBuild經驗,所以我在這一點上有點失落。預先感謝您提供的任何幫助!

回答

1

這是你想要的嗎?

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> 

<Target Name="Sample"> 
    <ItemGroup> 
     <_File Include="fileWithDirectorieNames.txt" /> 
    </ItemGroup> 
    <PropertyGroup> 
     <_DestDir>d:\copy\</_DestDir> 
    </PropertyGroup> 

    <ReadLinesFromFile File="@(_File)" > 
     <Output TaskParameter="Lines" ItemName="ItemsFromFile"/> 
    </ReadLinesFromFile> 

    <ItemGroup> 
     <_files2Copy Include="%(ItemsFromFile.Identity)\**\*" > 
      <lastDir>%(ItemsFromFile.Filename)%(ItemFromFile.Extension)\</lastDir> 
     </_files2Copy> 
    </ItemGroup> 

    <Copy SourceFiles="@(_files2Copy)" 
      DestinationFiles="@(_files2Copy->'$(_DestDir)%(lastDir)%(RecursiveDir)%(Filename)%(Extension)')" /> 
</Target> 

+0

是啊,這就是它!謝謝! –

相關問題