Delen via


CopyFiles@2 - Bestanden kopiëren v2-taak

Gebruik deze taak om bestanden van een bronmap naar een doelmap te kopiëren met behulp van overeenkomstpatronen. (De overeenkomstpatronen komen alleen overeen met bestandspaden, niet met mappaden).

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.

Invoerwaarden

SourceFolder - Bronmap
string.

Optioneel. De map met de bestanden die u wilt kopiëren. Als de map leeg is, kopieert de taak bestanden uit de hoofdmap van de opslagplaats alsof $(Build.SourcesDirectory) is opgegeven.

Als uw build artefacten buiten de bronmap produceert, geeft u $(Agent.BuildDirectory) op om bestanden te kopiëren uit de map die voor de pijplijn is gemaakt.


Contents - Inhoud
string. Vereist. Standaardwaarde: **.

De bestandspaden die moeten worden opgenomen als onderdeel van de kopie. Deze tekenreeks ondersteunt meerdere regels met overeenkomstpatronen.

Bijvoorbeeld:

  • * kopieert alle bestanden in de opgegeven bronmap.
  • ** kopieert alle bestanden in de opgegeven bronmap en alle bestanden in alle submappen.
  • **\bin\** kopieert alle bestanden recursief vanuit een willekeurige bin-map.

Het patroon wordt gebruikt om alleen bestandspaden te vinden, niet mappaden. Geef patronen op, zoals **\bin\** in plaats van **\bin.

Gebruik het padscheidingsteken dat overeenkomt met het type buildagent. Moet bijvoorbeeld / worden gebruikt voor Linux-agents. Meer voorbeelden worden hieronder weergegeven.


TargetFolder - Doelmap
string. Vereist.

De doelmap of het UNC-pad dat de gekopieerde bestanden bevat. U kunt variabelen gebruiken. Bijvoorbeeld: $(build.artifactstagingdirectory).


CleanTargetFolder - Doelmap opschonen
boolean. Standaardwaarde: false.

Optioneel. Hiermee verwijdert u alle bestaande bestanden in de doelmap vóór het kopieerproces.


OverWrite - Overschrijven
boolean. Standaardwaarde: false.

Optioneel. Vervangt de bestaande bestanden in de doelmap.


flattenFolders - Mappen plat maken
boolean. Standaardwaarde: false.

Optioneel. Hiermee wordt de mapstructuur platgemaakt en worden alle bestanden gekopieerd naar de opgegeven doelmap.


preserveTimestamp - Doeltijdstempel behouden
boolean. Standaardwaarde: false.

Behoudt de tijdstempel van het doelbestand met behulp van het oorspronkelijke bronbestand.


retryCount - Aantal nieuwe pogingen om het bestand te kopiëren
string. Standaardwaarde: 0.

Hiermee geeft u het aantal nieuwe pogingen op om het bestand te kopiëren. Deze tekenreeks is handig voor onregelmatige problemen, zoals UNC-doelpaden op een externe host.


delayBetweenRetries - Vertraging tussen twee nieuwe pogingen.
string. Standaardwaarde: 1000.

Hiermee geeft u de vertraging tussen twee nieuwe pogingen. Deze tekenreeks is handig voor onregelmatige problemen, zoals UNC-doelpaden op een externe host.


ignoreMakeDirErrors - Fouten negeren tijdens het maken van de doelmap.
boolean. Standaardwaarde: false.

Negeert fouten die optreden tijdens het maken van de doelmap. Deze tekenreeks is handig om problemen met de parallelle uitvoering van taken door meerdere agents binnen één doelmap te voorkomen.


Opties voor taakbeheer

Alle taken hebben besturingsopties naast hun taakinvoer. Zie Opties voor besturingselementen en algemene taakeigenschappen voor meer informatie.

Uitvoervariabelen

Geen.

Opmerkingen

Als er geen bestanden overeenkomen, wordt de taak nog steeds als geslaagd opgegeven.

  • Als Overwrite is false en er al een overeenkomend bestand in de doelmap bestaat, rapporteert de taak geen fout, maar wordt geregistreerd dat het bestand al bestaat en slaat u het over.
  • Als Overwrite is true en er al een overeenkomend bestand in de doelmap bestaat, wordt het overeenkomende bestand overschreven.

Voorbeelden

Bestand kopiëren naar de map fasering van artefacten en publiceren

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

Uitvoerbare bestanden en een leesmij-bestand kopiëren

Doel

U wilt alleen het leesmij-bestand en de bestanden kopiëren die nodig zijn om deze C#-console-app uit te voeren:

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

Notitie

ConsoleApplication1.sln bevat een bin-map met .dll en .exe bestanden. Zie de resultaten hieronder om te zien wat er wordt verplaatst.

Op het tabblad $(BuildConfiguration) Variabelen is ingesteld op release.

Voorbeeld met meerdere overeenkomstpatronen:

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

Voorbeeld met OF-voorwaarde:

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

Voorbeeld met de voorwaarde 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)'

Voorbeeld met variabelen in de inhoudssectie

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

Resultaten

Deze bestanden worden gekopieerd naar de map fasering:

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

Kopieer alles uit de bronmap, behalve de .git-map

Voorbeeld met meerdere overeenkomstpatronen:

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

Vereisten

Vereiste Beschrijving
Pijplijntypen YAML, klassieke build
Wordt uitgevoerd op Agent, DeploymentGroup
Eisen Geen
Functies Deze taak voldoet niet aan eventuele vereisten voor volgende taken in de taak.
Opdrachtbeperkingen Deze taak wordt uitgevoerd met behulp van de volgende opdrachtbeperkingen: beperkt
Instelbare variabelen Deze taak is gemachtigd om de volgende variabelen in te stellen: Het instellen van variabelen is uitgeschakeld
Agentversie 2.182.1 of hoger
Taakcategorie Hulpprogramma
Vereiste Beschrijving
Pijplijntypen YAML, klassieke build
Wordt uitgevoerd op Agent, DeploymentGroup
Eisen Geen
Functies Deze taak voldoet niet aan eventuele vereisten voor volgende taken in de taak.
Opdrachtbeperkingen Alle
Instelbare variabelen Alle
Agentversie 1.91.0 of hoger
Taakcategorie Hulpprogramma

Zie ook