0

我有一个包含文件夹 1、文件夹 2、文件夹 3、文件夹 4、.. 文件夹 10 的工作目录

我有一个包含项目(文件夹)名称的文本文件:

文件内容:

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}  }

我能得到的最接近的方法是将文件夹 1、文件夹 2 和文件夹 3 的所有内容复制到 mynewfolder 中(因此,结构丢失了)

我尝试使用 FindInList,我尝试使用转换方法,并且我还尝试调整所有内容以匹配此示例: MSBuild - 比较 ItemGroups 元数据

但我没有多少运气。

我只有大约 5 小时的 MSBuild 经验,所以此时我有点迷茫。提前感谢您提供的任何帮助!

4

1 回答 1

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>

于 2013-10-14T20:45:19.650 回答