CopyFiles@2 – Kopiera filer v2-uppgift

Använd den här uppgiften för att kopiera filer från en källmapp till en målmapp med hjälp av matchningsmönster. (Matchningsmönstren matchar bara filsökvägar, inte mappsökvägar).

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.

Indata

SourceFolder - Källmapp
string.

Valfritt. Mappen som innehåller de filer som du vill kopiera. Om mappen är tom kopierar aktiviteten filer från lagringsplatsens rotmapp som om $(Build.SourcesDirectory) den hade angetts.

Om bygget skapar artefakter utanför källkatalogen anger du $(Agent.BuildDirectory) för att kopiera filer från katalogen som skapats för pipelinen.


Contents - Innehållet
string. Krävs. Standardvärde: **.

Filsökvägarna som ska inkluderas som en del av kopian. Den här strängen stöder flera rader med matchningsmönster.

Exempel:

  • * kopierar alla filer i den angivna källmappen.
  • ** kopierar alla filer i den angivna källmappen och alla filer i alla undermappar.
  • **\bin\** kopierar alla filer rekursivt från valfri bin-mapp.

Mönstret används för att endast matcha filsökvägar, inte mappsökvägar. Ange mönster, till exempel **\bin\** i stället för **\bin.

Använd sökvägsavgränsaren som matchar din typ av byggagent. Till exempel / måste användas för Linux-agenter. Fler exempel visas nedan.


TargetFolder - Målmapp
string. Krävs.

Målmappen eller UNC-sökvägen som ska innehålla de kopierade filerna. Du kan använda variabler. Exempel: $(build.artifactstagingdirectory).


CleanTargetFolder - Rensa målmapp
boolean. Standardvärde: false.

Valfritt. Tar bort alla befintliga filer i målmappen före kopieringsprocessen.


OverWrite - Skriv över
boolean. Standardvärde: false.

Valfritt. Ersätter de befintliga filerna i målmappen.


flattenFolders - Platta ut mappar
boolean. Standardvärde: false.

Valfritt. Plattar ut mappstrukturen och kopierar alla filer till den angivna målmappen.


preserveTimestamp - Bevara måltidsstämpel
boolean. Standardvärde: false.

Bevarar målfilens tidsstämpel med hjälp av den ursprungliga källfilen.


retryCount - Antal återförsök för att kopiera filen
string. Standardvärde: 0.

Anger antalet återförsök för att kopiera filen. Den här strängen är användbar för tillfälliga problem, till exempel UNC-målsökvägar på en fjärrvärd.


delayBetweenRetries - Fördröjning mellan två återförsök.
string. Standardvärde: 1000.

Anger fördröjningen mellan två återförsök. Den här strängen är användbar för tillfälliga problem, till exempel UNC-målsökvägar på en fjärrvärd.


ignoreMakeDirErrors - Ignorera fel när målmappen skapas.
boolean. Standardvärde: false.

Ignorerar fel som uppstår när målmappen skapas. Den här strängen är användbar för att undvika problem med parallell körning av uppgifter av flera agenter i en målmapp.


Kontrollalternativ för aktivitet

Alla aktiviteter har kontrollalternativ utöver sina aktivitetsindata. Mer information finns i Kontrollalternativ och vanliga uppgiftsegenskaper.

Utdatavariabler

Inga.

Kommentarer

Om inga filer matchar rapporterar uppgiften fortfarande att åtgärden lyckades.

  • Om Overwrite är false och en matchad fil redan finns i målmappen rapporterar aktiviteten inte fel, men loggar att filen redan finns och hoppar över den.
  • Om Overwrite är true och det redan finns en matchad fil i målmappen skrivs den matchade filen över.

Exempel

Kopiera filen till artefakternas mellanlagringskatalog och publicera

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

Kopiera körbara filer och en readme-fil

Mål

Du vill bara kopiera readme och de filer som behövs för att köra den här C#-konsolappen:

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

Anteckning

ConsoleApplication1.sln innehåller en bin-mapp med .dll och .exe filer. Se resultatet nedan för att se vad som flyttas!

På fliken $(BuildConfiguration) Variabler är inställt på release.

Exempel med flera matchningsmönster:

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)'

Exempel med OR-villkor:

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

Exempel med VILLKOR EJ:

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

Exempel med variabler i innehållsavsnittet

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

Resultat

Dessa filer kopieras till mellanlagringskatalogen:

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

Kopiera allt från källkatalogen förutom .git-mappen

Exempel med flera matchningsmönster:

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

Krav

Krav Beskrivning
Pipelinetyper YAML, klassisk version
Körs på Agent, DeploymentGroup
Krav Ingen
Funktioner Den här aktiviteten uppfyller inte några krav för efterföljande uppgifter i jobbet.
Kommandobegränsningar Den här uppgiften körs med följande kommandobegränsningar: begränsad
Inställningsbara variabler Den här aktiviteten har behörighet att ange följande variabler: Inställningsvariabler är inaktiverade
Agentversion 2.182.1 eller senare
Uppgiftskategori Verktyg
Krav Beskrivning
Pipelinetyper YAML, klassisk version
Körs på Agent, DeploymentGroup
Krav Ingen
Funktioner Den här aktiviteten uppfyller inte några krav för efterföljande uppgifter i jobbet.
Kommandobegränsningar Valfri
Inställningsbara variabler Valfri
Agentversion 1.91.0 eller senare
Uppgiftskategori Verktyg

Se även