다음을 통해 공유


CopyFiles@2 - 파일 v2 작업 복사

일치 패턴을 사용하여 원본 폴더에서 대상 폴더로 파일을 복사하려면 이 작업을 사용합니다. 일치 패턴은 폴더 경로가 아닌 파일 경로만 일치합니다.

Syntax

# Copy files v2
# Copy files from a source folder to a target folder using patterns matching file paths (not folder paths).
- task: CopyFiles@2
  inputs:
    #SourceFolder: # string. Source Folder. 
    Contents: '**' # string. Required. Contents. Default: **.
    TargetFolder: # string. Required. Target Folder. 
  # Advanced
    #CleanTargetFolder: false # boolean. Clean Target Folder. Default: false.
    #OverWrite: false # boolean. Overwrite. Default: false.
    #flattenFolders: false # boolean. Flatten Folders. Default: false.
    #preserveTimestamp: false # boolean. Preserve Target Timestamp. Default: false.
    #retryCount: '0' # string. Retry count to copy the file. Default: 0.
    #delayBetweenRetries: '1000' # string. Delay between two retries. Default: 1000.
    #ignoreMakeDirErrors: false # boolean. Ignore errors during creation of target folder. Default: false.
# Copy files v2
# Copy files from a source folder to a target folder using patterns matching file paths (not folder paths).
- task: CopyFiles@2
  inputs:
    #SourceFolder: # string. Source Folder. 
    Contents: '**' # string. Required. Contents. Default: **.
    TargetFolder: # string. Required. Target Folder. 
  # Advanced
    #CleanTargetFolder: false # boolean. Clean Target Folder. Default: false.
    #OverWrite: false # boolean. Overwrite. Default: false.
    #flattenFolders: false # boolean. Flatten Folders. Default: false.
    #preserveTimestamp: false # boolean. Preserve Target Timestamp. Default: false.
# Copy Files v2
# Copy files from source folder to target folder using match patterns (The match patterns will only match file paths, not folder paths).
- task: CopyFiles@2
  inputs:
    #SourceFolder: # string. Source Folder. 
    Contents: '**' # string. Required. Contents. Default: **.
    TargetFolder: # string. Required. Target Folder. 
  # Advanced
    #CleanTargetFolder: false # boolean. Clean Target Folder. Default: false.
    #OverWrite: false # boolean. Overwrite. Default: false.
    #flattenFolders: false # boolean. Flatten Folders. Default: false.

입력

SourceFolder - 원본 폴더
string.

선택 사항입니다. 복사할 파일이 들어 있는 폴더입니다. 폴더가 비어 있으면 작업은 리포지토리의 루트 폴더에서 지정된 것처럼 $(Build.SourcesDirectory) 파일을 복사합니다.

빌드에서 원본 디렉터리 외부에서 아티팩트가 생성되는 경우 파이프라인에 대해 만든 디렉터리에서 파일을 복사하도록 지정 $(Agent.BuildDirectory) 합니다.


Contents - 내용을
string. 필수 요소. 기본값은 **입니다.

복사본의 일부로 포함할 파일 경로입니다. 이 문자열은 여러 줄의 일치 패턴을 지원합니다.

예를 들면 다음과 같습니다.

  • * 는 지정된 원본 폴더의 모든 파일을 복사합니다.
  • ** 는 지정된 원본 폴더의 모든 파일과 모든 하위 폴더의 모든 파일을 복사합니다.
  • **\bin\** 는 모든 bin 폴더에서 모든 파일을 재귀적으로 복사합니다.

패턴은 폴더 경로가 아닌 파일 경로만 일치하도록 사용됩니다. 대신 와 같은 **\bin\** 패턴을 지정합니다 **\bin.

빌드 에이전트 유형과 일치하는 경로 구분 기호를 사용합니다. 예를 들어 은 / Linux 에이전트에 사용해야 합니다. 아래에는 더 많은 예제가 나와 있습니다.


TargetFolder - 대상 폴더
string. 필수 요소.

복사한 파일을 포함할 대상 폴더 또는 UNC 경로입니다. 변수를 사용할 수 있습니다. 예: $(build.artifactstagingdirectory).


CleanTargetFolder - 대상 폴더 정리
boolean. 기본값은 false입니다.

선택 사항입니다. 복사 프로세스 전에 대상 폴더의 모든 기존 파일을 삭제합니다.


OverWrite - 덮어쓸
boolean. 기본값은 false입니다.

선택 사항입니다. 대상 폴더의 기존 파일을 바꿉니다.


flattenFolders - 폴더 평면화
boolean. 기본값은 false입니다.

선택 사항입니다. 폴더 구조를 평면화하고 모든 파일을 지정된 대상 폴더에 복사합니다.


preserveTimestamp - 대상 타임스탬프 유지
boolean. 기본값은 false입니다.

원래 원본 파일을 사용하여 대상 파일 타임스탬프를 유지합니다.


retryCount - 파일을 복사하기 위한 재시도 횟수
string. 기본값은 0입니다.

파일을 복사할 재시도 횟수를 지정합니다. 이 문자열은 원격 호스트의 UNC 대상 경로와 같은 일시적인 문제에 유용합니다.


delayBetweenRetries - 두 번의 재시도 사이에 지연이 있습니다.
string. 기본값은 1000입니다.

두 번의 재시도 사이의 지연을 지정합니다. 이 문자열은 원격 호스트의 UNC 대상 경로와 같은 일시적인 문제에 유용합니다.


ignoreMakeDirErrors - 대상 폴더를 만드는 동안 오류를 무시합니다.
boolean. 기본값은 false입니다.

대상 폴더를 만드는 동안 발생하는 오류를 무시합니다. 이 문자열은 한 대상 폴더 내의 여러 에이전트가 태스크를 병렬로 실행하는 문제를 방지하는 데 유용합니다.


작업 제어 옵션

모든 작업에는 작업 입력 외에 제어 옵션이 있습니다. 자세한 내용은 컨트롤 옵션 및 일반적인 작업 속성을 참조하세요.

출력 변수

없음

설명

일치하는 파일이 없으면 작업은 여전히 성공을 보고합니다.

  • false 이고 일치하는 파일이 대상 폴더에 이미 있는 경우 Overwrite 작업은 실패를 보고하지 않고 파일이 이미 있음을 기록하고 건너뜁니다.
  • true 이고 일치하는 파일이 대상 폴더에 이미 있는 경우 Overwrite 일치하는 파일을 덮어씁니다.

아티팩트 스테이징 디렉터리에 파일 복사 및 게시

steps:
- task: CopyFiles@2
  inputs:
    contents: '_buildOutput/**'
    targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: $(Build.ArtifactStagingDirectory)
    artifactName: MyBuildOutputs

실행 파일 및 추가 정보 파일 복사

목표

이 C# 콘솔 앱을 실행하는 데 필요한 추가 정보 및 파일만 복사하려고 합니다.

`-- ConsoleApplication1
    |-- ConsoleApplication1.sln
    |-- readme.txt
    `-- ClassLibrary1
        |-- ClassLibrary1.csproj
    `-- ClassLibrary2
        |-- ClassLibrary2.csproj
    `-- ConsoleApplication1
        |-- ConsoleApplication1.csproj

참고

ConsoleApplication1.sln 에는 .dll 및 .exe 파일이 있는 bin 폴더가 포함되어 있습니다. 이동되는 내용을 보려면 아래 결과를 참조하세요.

변수 탭에서 가 $(BuildConfiguration) 로 설정 release됩니다.

여러 일치 패턴이 있는 예제:

steps:
- task: CopyFiles@2
  displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
  inputs:
    Contents: |
      ConsoleApplication1\ConsoleApplication1\bin\**\*.exe
      ConsoleApplication1\ConsoleApplication1\bin\**\*.dll
      ConsoleApplication1\readme.txt
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

OR 조건이 있는 예제:

steps:
- task: CopyFiles@2
  displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
  inputs:
    Contents: |
      ConsoleApplication1\ConsoleApplication1\bin\**\?(*.exe|*.dll)
      ConsoleApplication1\readme.txt
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

NOT 조건이 있는 예제:

steps:
- task: CopyFiles@2
  displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
  inputs:
    Contents: |
      ConsoleApplication1\**\bin\**\!(*.pdb|*.config)
      !ConsoleApplication1\**\ClassLibrary*\**
      ConsoleApplication1\readme.txt
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

콘텐츠 섹션에 변수가 있는 예제

- task: CopyFiles@2
  inputs:
    Contents: '$(Build.Repository.LocalPath)/**' 
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

결과

이러한 파일은 스테이징 디렉터리에 복사됩니다.

`-- ConsoleApplication1
    |-- readme.txt
    `-- ConsoleApplication1
        `-- bin
            `-- Release
                | -- ClassLibrary1.dll
                | -- ClassLibrary2.dll
                | -- ConsoleApplication1.exe

.git 폴더를 제외한 원본 디렉터리에서 모든 항목 복사

여러 일치 패턴이 있는 예제:

steps:
- task: CopyFiles@2
  displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
  inputs:
    SourceFolder: '$(Build.SourcesDirectory)'
    Contents: |
      **/*
      !.git/**/*
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

요구 사항

요구 사항 Description
파이프라인 유형 YAML, 클래식 빌드
실행 중 에이전트, DeploymentGroup
요청 없음
Capabilities 이 작업은 작업의 후속 작업에 대한 요구를 충족하지 않습니다.
명령 제한 사항 이 작업은 다음 명령 제한을 사용하여 실행됩니다. 제한됨
설정 가능한 변수 이 작업에는 다음 변수를 설정할 수 있는 권한이 있습니다. 변수 설정을 사용할 수 없습니다.
에이전트 버전 2.182.1 이상
작업 범주 유틸리티
요구 사항 Description
파이프라인 유형 YAML, 클래식 빌드
실행 중 에이전트, DeploymentGroup
요청 없음
Capabilities 이 작업은 작업의 후속 작업에 대한 요구를 충족하지 않습니다.
명령 제한 사항 모두
설정 가능한 변수 모두
에이전트 버전 1.91.0 이상
작업 범주 유틸리티

참고 항목