使用文件输入通过MSBuild复制特定文件夹

使用文件输入通过MSBuild复制特定文件夹,msbuild,Msbuild,我有一个工作目录 折叠1,折叠2,折叠3,折叠4。。折页10 我有一个包含项目(文件夹)名称的文本文件: 文件内容: folder1 folder2 folder3 我想读取文件中的行,然后只将这些文件夹复制到新文件夹,同时保持目录结构 mynewfolder{ folder1, folder2, folder3 } 将有多个文件可供输入。生成的工作目录(我称之为父目录)将如下更改: parent before msbuild: parent{ folder1, folder2, .., f

我有一个工作目录 折叠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}  }
我能得到的最接近的方法是将folder1、folder2和folder3的所有内容复制到mynewfolder中(因此,结构丢失)

我尝试过使用FindInList,尝试过使用transform方法,还尝试过调整一切以匹配此示例:

但我运气不太好

我对MSBuild只有大约5个小时的使用经验,所以现在我有点不知所措。提前感谢您提供的任何帮助

这就是你想要的吗

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

d:\copy\
%(ItemsFromFile.Filename)%(ItemsFromFile.Extension)\

是的,就是这样!非常感谢。