Sdílet prostřednictvím


CopyFiles@2 – úloha kopírování souborů v2

Pomocí této úlohy můžete kopírovat soubory ze zdrojové složky do cílové složky pomocí vzorů shody. (Vzory shody budou odpovídat pouze cestám k souborům, ne cestám ke složkám.)

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.

Vstupy

SourceFolder - Zdrojová složka
string.

Nepovinný parametr. Složka obsahující soubory, které chcete zkopírovat. Pokud je složka prázdná, úloha zkopíruje soubory z kořenové složky úložiště, jako by $(Build.SourcesDirectory) byla zadána.

Pokud sestavení vytváří artefakty mimo adresář sources, zadejte $(Agent.BuildDirectory) , aby se soubory zkopírovaly z adresáře vytvořeného pro kanál.


Contents - Obsah
string. Povinná hodnota. Výchozí hodnota: **.

Cesty k souborům, které se mají zahrnout jako součást kopie. Tento řetězec podporuje více řádků vzorů shody.

Příklad:

  • * zkopíruje všechny soubory v zadané zdrojové složce.
  • ** zkopíruje všechny soubory v zadané zdrojové složce a všechny soubory ve všech podsložkách.
  • **\bin\** zkopíruje všechny soubory rekurzivně z libovolné složky bin.

Vzor se používá k porovnávání pouze cest k souborům, nikoli ke složkám. Zadejte vzory, například **\bin\** místo **\bin.

Použijte oddělovač cesty, který odpovídá vašemu typu agenta sestavení. Musí se například / použít pro agenty linuxu. Další příklady jsou uvedené níže.


TargetFolder - Cílová složka
string. Povinná hodnota.

Cílová složka nebo cesta UNC, která bude obsahovat zkopírované soubory. Můžete použít proměnné. Příklad: $(build.artifactstagingdirectory).


CleanTargetFolder - Vyčistit cílovou složku
boolean. Výchozí hodnota: false.

Nepovinný parametr. Odstraní všechny existující soubory v cílové složce před procesem kopírování.


OverWrite - Přepsat
boolean. Výchozí hodnota: false.

Nepovinný parametr. Nahradí existující soubory v cílové složce.


flattenFolders - Zploštělé složky
boolean. Výchozí hodnota: false.

Nepovinný parametr. Zploštěte strukturu složek a zkopíruje všechny soubory do zadané cílové složky.


preserveTimestamp - Zachovat cílové časové razítko
boolean. Výchozí hodnota: false.

Zachová časové razítko cílového souboru pomocí původního zdrojového souboru.


retryCount - Počet opakování pro zkopírování souboru
string. Výchozí hodnota: 0.

Určuje počet opakování pro zkopírování souboru. Tento řetězec je užitečný pro občasné problémy, jako jsou cílové cesty UNC na vzdáleném hostiteli.


delayBetweenRetries - Zpoždění mezi dvěma opakováními.
string. Výchozí hodnota: 1000.

Určuje zpoždění mezi dvěma opakovanými pokusy. Tento řetězec je užitečný pro občasné problémy, jako jsou cílové cesty UNC na vzdáleném hostiteli.


ignoreMakeDirErrors - Chyby při vytváření cílové složky ignorujte.
boolean. Výchozí hodnota: false.

Ignoruje chyby, ke kterým dochází při vytváření cílové složky. Tento řetězec je užitečný, pokud se chcete vyhnout problémům s paralelním spouštěním úloh několika agenty v jedné cílové složce.


Možnosti ovládání úloh

Všechny úlohy mají kromě vstupů také možnosti ovládání. Další informace najdete v tématu Možnosti ovládacího prvku a běžné vlastnosti úlohy.

Výstupní proměnné

Žádné

Poznámky

Pokud se žádné soubory neshodí, bude úkol stále hlásit úspěch.

  • Pokud Overwrite je false a odpovídající soubor již existuje v cílové složce, úloha neohlásí selhání, ale zaznamená, že soubor již existuje, a přeskočí ho.
  • Pokud Overwrite je true a odpovídající soubor již existuje v cílové složce, odpovídající soubor se přepíše.

Příklady

Kopírování souboru do pracovního adresáře artefaktů a publikování

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

Kopírování spustitelných souborů a souboru readme

Cíl

Chcete zkopírovat jenom soubor readme a soubory potřebné ke spuštění této konzolové aplikace v jazyce C#:

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

Poznámka

ConsoleApplication1.sln obsahuje složku bin se soubory .dll a .exe. Pokud chcete zjistit, co se přesune, podívejte se na výsledky níže.

Na kartě $(BuildConfiguration) Proměnné je nastavena na releasehodnotu .

Příklad s několika vzory shody:

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

Příklad s podmínkou OR:

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

Příklad s podmínkou 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)'

Příklad s proměnnými v oddílu obsahu

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

Výsledky

Tyto soubory se zkopírují do pracovního adresáře:

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

Zkopírujte všechno ze zdrojového adresáře kromě složky .git.

Příklad s několika vzory shody:

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

Požadavky

Požadavek Popis
Typy kanálů YAML, klasický build
Běží na Agent, DeploymentGroup
Požadavky Žádné
Možnosti Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze.
Omezení příkazů Tato úloha se spustí pomocí následujících omezení příkazu: restricted
Nastavitelné proměnné Tato úloha má oprávnění k nastavení následujících proměnných: Nastavení proměnných je zakázáno.
Verze agenta 2.182.1 nebo vyšší
Kategorie úloh Nástroj
Požadavek Popis
Typy kanálů YAML, klasický build
Běží na Agent, DeploymentGroup
Požadavky Žádné
Možnosti Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze.
Omezení příkazů Všechny
Nastavitelné proměnné Všechny
Verze agenta 1.91.0 nebo vyšší
Kategorie úloh Nástroj

Viz také