You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

发布新构建至本地服务器前,如何用Azure CI/CD的CopyFileTask@2备份文件夹

使用Copy Files v2任务完成指定路径的归档备份

步骤1:生成符合要求的日期变量

因为目标路径需要按YYYY\DDMMYYYY的日期结构归档,首先要生成对应的日期变量:

  • 如果用PowerShell脚本生成(适合在Pipeline中前置执行):
    $currentDate = Get-Date
    # 生成年份变量(如2024)
    Write-Host "##vso[task.setvariable variable=year;]$($currentDate.Year)"
    # 生成DDMMYYYY格式的日期变量(如11062024)
    Write-Host "##vso[task.setvariable variable=dateFolder;]$($currentDate.ToString('ddMMyyyy'))"
    
  • 也可以直接用Azure DevOps内置的变量表达式(无需额外脚本):
    • 年份变量:$[formatDateTime(variables['System.Date'], 'yyyy')]
    • 日期文件夹变量:$[formatDateTime(variables['System.Date'], 'ddMMyyyy')]

步骤2:配置Copy Files v2任务

直接在Pipeline中添加CopyFileTask@2任务,按需求填写参数:

  • SourceFolder:填写要备份的源路径 D:\Applications\wwwroot\Example
  • Contents:填**表示递归复制源文件夹下所有文件和子目录;如果只需要特定文件,可写匹配规则(如*.dll)
  • TargetFolder:用变量拼接目标路径:D:\Applications\test-backup\Example-backup\$(year)\$(dateFolder)
  • 可选参数按需配置:
    • OverWrite:设为true可覆盖目标路径中已存在的同名文件
    • PreserveTimestamp:设为true保留文件原始时间戳
    • Recursive:设为true确保所有子目录内容被复制

完整的YAML配置示例:

- task: CopyFiles@2
  displayName: '备份Example文件夹'
  inputs:
    SourceFolder: 'D:\Applications\wwwroot\Example'
    Contents: '**'
    TargetFolder: 'D:\Applications\test-backup\Example-backup\$(year)\$(dateFolder)'
    OverWrite: true
    PreserveTimestamp: true
    Recursive: true

注意事项

  • 确保执行任务的账号对源文件夹有读取权限,对目标路径有写入权限
  • 目标路径不存在时,任务会自动创建所有层级的文件夹
  • 若需要验证备份结果,可在任务后添加PowerShell脚本检查目标文件夹内容

内容的提问来源于stack exchange,提问作者RahulKumar Surati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 12:02:03