Azure DevOps CopyFiles@2任务:复制指定嵌套子文件夹及文件
解决CopyFiles任务复制特定子文件夹的配置问题
问题分析
你需要复制嵌套路径Scripts/Bin/obj/Application/Test/App下的文件夹及所有文件,但当前配置的匹配规则无法精准实现需求,可能存在路径匹配或目录结构保留的问题。
正确配置方案
方案1:完整复制App文件夹及内部内容(保留App目录结构)
如果希望复制后目标目录呈现Dev/App/file1、Dev/App/file2的完整结构,使用以下配置:
- task: CopyFiles@2 inputs: SourceFolder: '$(build.artifactstagingdirectory)/Scripts' # 匹配任意层级下的App文件夹及其所有子内容 Contents: '**/App/**' TargetFolder: '$(build.artifactstagingdirectory)/Dev' # 保留源文件夹结构,确保App目录被完整复制 flattenFolders: false # 可选:保留文件原始时间戳 preserveTimestamp: true
方案2:仅复制App内的文件(不保留App文件夹)
如果只需要将file1、file2直接放到Dev目录根下,使用以下配置:
- task: CopyFiles@2 inputs: SourceFolder: '$(build.artifactstagingdirectory)/Scripts' # 匹配任意层级下App文件夹内的所有文件 Contents: '**/App/*' TargetFolder: '$(build.artifactstagingdirectory)/Dev' # 扁平化文件夹,直接将文件放到目标目录 flattenFolders: true
关键配置说明
- 路径分隔符:YAML中优先使用正斜杠
/,跨平台兼容性更强,避免反斜杠\的转义问题 **:匹配任意层级的嵌套文件夹flattenFolders:设为false保留源目录结构,设为true则将所有文件直接输出到目标目录根下
内容的提问来源于stack exchange,提问作者megha
相关产品推荐
相关产品推荐

