CopyFiles@2 – Aufgabe "Dateien kopieren v2"

Verwenden Sie diese Aufgabe, um Dateien aus einem Quellordner mithilfe von Übereinstimmungsmustern in einen Zielordner zu kopieren. (Die Übereinstimmungsmuster stimmen nur mit Dateipfaden überein, nicht mit Ordnerpfaden.

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.

Eingaben

SourceFolder - Quellordner
string.

Optional. Der Ordner, der die dateien enthält, die Sie kopieren möchten. Wenn der Ordner leer ist, kopiert die Aufgabe Dateien aus dem Stammordner des Repositorys, als ob $(Build.SourcesDirectory) angegeben.

Wenn Ihr Build Artefakte außerhalb des Quellenverzeichnisses erzeugt, geben Sie $(Agent.BuildDirectory) an, damit Dateien aus dem für die Pipeline erstellten Verzeichnis kopiert werden.


Contents - Inhalt
string. Erforderlich. Standardwert. **.

Die Dateipfade, die als Teil der Kopie eingeschlossen werden sollen. Diese Zeichenfolge unterstützt mehrere Übereinstimmungsmuster.

Beispiel:

  • * kopiert alle Dateien im angegebenen Quellordner.
  • ** kopiert alle Dateien im angegebenen Quellordner und alle Dateien in allen Unterordnern.
  • **\bin\** kopiert alle Dateien rekursiv aus einem beliebigen Bin-Ordner.

Das Muster wird nur verwendet, um Dateipfade abzugleichen, nicht für Ordnerpfade. Geben Sie Muster an, z **\bin\** . B. anstelle von **\bin.

Verwenden Sie das Pfadtrennzeichen, das ihrem Build-Agent-Typ entspricht. Muss beispielsweise / für Linux-Agents verwendet werden. Im Folgenden werden mehr Beispiele veranschaulicht.


TargetFolder - Zielordner
string. Erforderlich.

Der Zielordner oder UNC-Pfad, der die kopierten Dateien enthält. Sie können Variablen verwenden. Beispiel: $(build.artifactstagingdirectory).


CleanTargetFolder - Bereinigen des Zielordners
boolean. Standardwert. false.

Optional. Löscht alle vorhandenen Dateien im Zielordner vor dem Kopiervorgang.


OverWrite - Überschreiben
boolean. Standardwert. false.

Optional. Ersetzt die vorhandenen Dateien im Zielordner.


flattenFolders - Vereinfachen von Ordnern
boolean. Standardwert. false.

Optional. Vereinfacht die Ordnerstruktur und kopiert alle Dateien in den angegebenen Zielordner.


preserveTimestamp - Zielzeitstempel beibehalten
boolean. Standardwert. false.

Behält den Zeitstempel der Zieldatei unter Verwendung der ursprünglichen Quelldatei bei.


retryCount - Wiederholungsanzahl zum Kopieren der Datei
string. Standardwert. 0.

Gibt die Wiederholungsanzahl zum Kopieren der Datei an. Diese Zeichenfolge ist nützlich für zeitweilige Probleme, z. B. UNC-Zielpfade auf einem Remotehost.


delayBetweenRetries - Verzögerung zwischen zwei Wiederholungen.
string. Standardwert. 1000.

Gibt die Verzögerung zwischen zwei Wiederholungen an. Diese Zeichenfolge ist nützlich für zeitweilige Probleme, z. B. UNC-Zielpfade auf einem Remotehost.


ignoreMakeDirErrors - Fehler beim Erstellen des Zielordners ignorieren.
boolean. Standardwert. false.

Ignoriert Fehler, die beim Erstellen des Zielordners auftreten. Diese Zeichenfolge ist nützlich, um Probleme mit der parallelen Ausführung von Aufgaben durch mehrere Agents innerhalb eines Zielordners zu vermeiden.


Optionen für die Vorgangskontrolle

Alle Vorgänge verfügen zusätzlich zu ihren Eingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerungsoptionen und allgemeine Aufgabeneigenschaften.

Ausgabevariablen

Keine.

Hinweise

Wenn keine Dateien übereinstimmen, meldet die Aufgabe weiterhin den Erfolg.

  • Wenn Overwrite ist und eine übereinstimmene Datei bereits im Zielordner vorhanden ist false , meldet die Aufgabe keinen Fehler, sondern protokolliert, dass die Datei bereits vorhanden ist, und überspringt sie.
  • Wenn Overwrite ist und eine übereinstimmene Datei bereits im Zielordner vorhanden ist true , wird die übereinstimmene Datei überschrieben.

Beispiele

Kopieren einer Datei in das Stagingverzeichnis von Artefakten und Veröffentlichen

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

Kopieren von ausführbaren Dateien und einer Infodatei

Zielsetzung

Wenn Sie nur die Infodatei und die Dateien kopieren möchten, die zum Ausführen dieser C#-Konsolen-App erforderlich sind, gehen Sie wie folgt vor:

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

Hinweis

ConsoleApplication1.sln enthält einen Ordner bin mit .dll- und .exe-Dateien. In den Ergebnissen unten sehen Sie, was verschoben wird.

Auf der Registerkarte Variablen ist $(BuildConfiguration) auf release festgelegt.

Beispiel mit mehreren Übereinstimmungsmustern:

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

Beispiel mit OR-Bedingung:

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

Beispiel mit NOT-Bedingung:

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

Beispiel mit Variablen im Inhaltsabschnitt

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

Ergebnisse

Diese Dateien werden in das Stagingverzeichnis kopiert:

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

Kopieren Sie alles aus dem Quellverzeichnis mit Ausnahme des Ordners .git.

Beispiel mit mehreren Übereinstimmungsmustern:

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

Anforderungen

Anforderung BESCHREIBUNG
Pipelinetypen YAML, klassischer Build
Wird ausgeführt auf Agent, DeploymentGroup
Forderungen Keine
Capabilities Diese Aufgabe erfüllt keine Anforderungen an nachfolgende Aufgaben im Auftrag.
Befehlseinschränkungen Diese Aufgabe wird mit den folgenden Befehlseinschränkungen ausgeführt: restricted
Setzbare Variablen Diese Aufgabe verfügt über die Berechtigung zum Festlegen der folgenden Variablen: Festlegen von Variablen ist deaktiviert.
Agent-Version 2.182.1 oder höher
Aufgabenkategorie Hilfsprogramm
Anforderung BESCHREIBUNG
Pipelinetypen YAML, klassischer Build
Wird ausgeführt auf Agent, DeploymentGroup
Forderungen Keine
Capabilities Diese Aufgabe erfüllt keine Anforderungen an nachfolgende Aufgaben im Auftrag.
Befehlseinschränkungen Any
Setzbare Variablen Any
Agent-Version 1.91.0 oder höher
Aufgabenkategorie Hilfsprogramm

Weitere Informationen