【问题标题】:How to copy specific files from same location to destination?如何将特定文件从同一位置复制到目的地?
【发布时间】:2014-04-03 18:49:45
【问题描述】:

我有一个 MSBuild 脚本,用于将特定文件从源复制到目标,如下所示。 我不想给出 *.txt 但给出文件名,因为我只想要这些文件。 这里目录“E:\Test100\”重复了多次(我可以把它放在一个属性中,但仍然会重复该属性)。

有没有办法简化这一点,从定义一次的特定目录中引用这些文件?

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Target Name="CopyAllFiles">
    <ItemGroup Label="FilesToCopy">
      <File Include="E:\Test100\1.txt"/>
      <File Include="E:\Test100\2.txt"/>
      <File Include="E:\Test100\3.txt"/>
      <File Include="E:\Test100\4.txt"/>
      <File Include="E:\Test100\5.txt"/>
      <File Include="E:\Test100\6.txt"/>
      <File Include="E:\Test100\7.txt"/>
      <File Include="E:\Test100\8.txt"/>
    </ItemGroup>
    <Copy SourceFiles="@(File)"
          DestinationFolder="E:\TestCopyFiles\"
          Retries="10"
          RetryDelayMilliseconds="100">
    </Copy>   
  </Target>
</Project>

注意:MSBuild 脚本和文件位于不同的目录中。

【问题讨论】:

    标签: msbuild msbuild-task msbuild-4.0


    【解决方案1】:

    查看有关 msbuild 批处理/列表 ttransformation 等的文档。您想要的是 msbuild 可以处理列表的典型方式 - 如果您想将重复保持在最低限度,您甚至不必指定 .txt部分:

    <ItemGroup Label="FilesToCopy">
      <FileName Include="1"/>
      <FileName Include="2"/>
      <FileName Include="3"/>
      <FileName Include="4"/>
      <FileName Include="5"/>
      <FileName Include="6"/>
      <FileName Include="7"/>
      <FileName Include="8"/>
    </ItemGroup>
    <ItemGroup>
      <File Include="E:\Test100\%(FileName.Identity).txt"/>
    </ItemGroup>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-07
      • 1970-01-01
      • 1970-01-01
      • 2013-05-02
      • 1970-01-01
      • 2019-12-08
      • 1970-01-01
      相关资源
      最近更新 更多