Dela via


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 endast 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.

Ingångar

SourceFolder - källmapp
string.

Valfritt. Mappen som innehåller de filer som du vill kopiera. Om mappen är tom kopierar aktiviteten filer från rotmappen på lagringsplatsen som om $(Build.SourcesDirectory) angavs.

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


Contents - innehåll
string. Obligatoriskt. Standardvärde: **.

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

Till 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 lagerplatsmapp.

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.

Omslutning av specialtecken i [] kan användas för att undkomma literala globtecken i ett filnamn. Till exempel kan det literala filnamnet hello[a-z] undantagas som hello[[]a-z]. Mer information finns i referensen Filmatchningsmönster.

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


TargetFolder - målmapp
string. Obligatoriskt.

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ålmappen
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. Förenklar mappstrukturen och kopierar alla filer till den angivna målmappen.


preserveTimestamp - Bevara måltidsstämpeln
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.


Alternativ för uppgiftskontroll

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

Utdatavariabler

Ingen.

Anmärkningar

Om inga filer matchar rapporterar uppgiften fortfarande att den lyckades.

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

Exempel

Kopiera filen till mellanlagringskatalogen för artefakter 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-filen 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

Anmärkning

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

På fliken $(BuildConfiguration) Variabler är inställd 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 NOT-villkor:

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

Kravspecifikation

Krav Beskrivning
Pipelinetyper YAML, klassisk version
Körs på Agent, DeploymentGroup
Krav Ingen
Kapaciteter Den här aktiviteten uppfyller inte några krav på efterföljande uppgifter i jobbet.
Kommandobegränsningar Den här aktiviteten körs med hjälp av följande kommandobegränsningar: begränsad
variabler som kan Den här uppgiften har behörighet att ange följande variabler: Inställningsvariabler är inaktiverade
Agentversion 2.182.1 eller senare
Aktivitetskategori Nyttighet
Krav Beskrivning
Pipelinetyper YAML, klassisk version
Körs på Agent, DeploymentGroup
Krav Ingen
Kapaciteter Den här aktiviteten uppfyller inte några krav på efterföljande uppgifter i jobbet.
Kommandobegränsningar Vilken som helst
variabler som kan Vilken som helst
Agentversion 1.91.0 eller senare
Aktivitetskategori Nyttighet

Se även