MSBUILD将多个文件从源路径复制到不同的目标路径

时间:2018-12-13 19:58:09

标签: batch-file msbuild xcopy

我需要将文件从不同的源路径复制到不同的目标路径。

示例来源:

  • xyz \ x.txt
  • pqr \ p.img

相应的目的地:

  • mno \ x1.txt
  • qst \ p_sth.img

我正在尝试按以下方式使用批处理副本:

创建了一个ItemGroup,指定了源文件和目标文件: 运行批量复制命令:

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

<ItemGroup>
        <src Include="xyz\x.txt">
            <OutputFile>"mno\x1.txt"</OutputFile>
        </src>
        <src Include="pqr\p.img" >
            <OutputFile>"qst\p_sth.img"</OutputFile>
        </src>
</ItemGroup>

 <Target Name="start">


    <Message Importance="high" Text="Bulk Copy"/>
    <Copy SourceFiles="%(src.FullPath)" DestinationFiles="%(src.OutputFile)"/>
  </Target>
  </Project>

我遇到了指向第17行的“非法字符”错误,显示为:

MSBuild Error 我什至可以使用“复制”命令来实现此目的吗? RoboCopy命令也是可以接受的。

[但是,要求我们需要带有文件名的完整源路径和带有文件名的完整目标路径]

处理此问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

解决方案只是从输出文件路径中删除不需要的引号(如@stjin所建议):

<ItemGroup>
        <src Include="xyz\x.txt">
            <OutputFile>mno\x1.txt</OutputFile>
        </src>
        <src Include="pqr\p.img" >
            <OutputFile>qst\p_sth.img</OutputFile>
        </src>
</ItemGroup>