Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.
Eingänge
SourceFolder
-
Quellordner-
string
.
Wahlfrei. 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 wurde.
Wenn Ihr Build Artefakte außerhalb des Quellverzeichnisses erzeugt, geben Sie $(Agent.BuildDirectory)
an, um Dateien aus dem für die Pipeline erstellten Verzeichnis zu kopieren.
Contents
-
Inhalte
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 jedem Bin-Ordner.
Das Muster wird verwendet, um nur Dateipfade und nicht Ordnerpfade abzugleichen. Geben Sie Muster wie **\bin\**
anstelle von **\bin
an.
Das Umbrechen von Sonderzeichen in []
kann verwendet werden, um Literal-Globzeichen in einem Dateinamen zu escapen. Der Literaldateiname hello[a-z]
kann z. B. als hello[[]a-z]
escapet werden. Weitere Informationen finden Sie unter Dateiabgleichsmuster.
Verwenden Sie das Pfadtrennzeichen, das Ihrem Build-Agent-Typ entspricht. Beispielsweise muss /
für Linux-Agents verwendet werden. Weitere Beispiele finden Sie unten.
TargetFolder
-
Zielordner-
string
. Erforderlich.
Der Zielordner oder UNC-Pfad, der die kopierten Dateien enthält. Sie können Variablenverwenden. Beispiel: $(build.artifactstagingdirectory)
.
CleanTargetFolder
-
"Zielordner bereinigen"
boolean
. Standardwert: false
.
Wahlfrei. Löscht alle vorhandenen Dateien im Zielordner vor dem Kopiervorgang.
OverWrite
-
überschreiben
boolean
. Standardwert: false
.
Wahlfrei. Ersetzt die vorhandenen Dateien im Zielordner.
flattenFolders
-
flache Ordner
boolean
. Standardwert: false
.
Wahlfrei. Vereinfacht die Ordnerstruktur und kopiert alle Dateien in den angegebenen Zielordner.
preserveTimestamp
-
Ziel-Zeitstempel beibehalten
boolean
. Standardwert: false
.
Behält den Zeitstempel der Zieldatei bei, indem die ursprüngliche Quelldatei verwendet wird.
retryCount
-
Wiederholen Sie die Anzahl, um die Datei zu kopieren
string
. Standardwert: 0
.
Gibt die Anzahl der Wiederholungsversuche an, um die Datei zu kopieren. 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 während der Erstellung des Zielordners auftreten. Diese Zeichenfolge ist nützlich, um Probleme bei der parallelen Ausführung von Aufgaben durch mehrere Agenten innerhalb eines Zielordners zu vermeiden.
Aufgabensteuerungsoptionen
Alle Aufgaben verfügen zusätzlich zu ihren Aufgabeneingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerelementoptionen und allgemeinen Aufgabeneigenschaften.
Ausgabevariablen
Keiner.
Bemerkungen
Wenn keine Dateien übereinstimmen, meldet die Aufgabe weiterhin erfolglos.
- Wenn
Overwrite
einefalse
übereinstimmende Datei bereits im Zielordner vorhanden ist, meldet die Aufgabe keinen Fehler, sondern protokolliert, dass die Datei bereits vorhanden ist, und überspringt sie. - Wenn
Overwrite
diestrue
der Fall ist und bereits eine übereinstimmende Datei im Zielordner vorhanden ist, wird die übereinstimmende Datei überschrieben.
Beispiele
Kopieren der Datei in das Staging-Verzeichnis für Artefakte 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 Readme-Datei
Ziel
Sie möchten nur die Infodatei und die Dateien kopieren, die zum Ausführen dieser C#-Konsolen-App erforderlich sind:
`-- ConsoleApplication1
|-- ConsoleApplication1.sln
|-- readme.txt
`-- ClassLibrary1
|-- ClassLibrary1.csproj
`-- ClassLibrary2
|-- ClassLibrary2.csproj
`-- ConsoleApplication1
|-- ConsoleApplication1.csproj
Hinweis
ConsoleApplication1.sln einen bin-Ordner mit .dll und .exe Dateien enthält, sehen Sie sich die Ergebnisse unten an, um zu sehen, was verschoben wird!
Auf der Registerkarte $(BuildConfiguration)
Variablen ist 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 ODER-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 Inhaltsbereich
- task: CopyFiles@2
inputs:
Contents: '$(Build.Repository.LocalPath)/**'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Ergebnisse
Diese Dateien werden in das Staging-Verzeichnis 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 |
Läuft auf | Agent, DeploymentGroup |
Anforderungen | Nichts |
Funktionen | Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag. |
Befehlseinschränkungen | Diese Aufgabe wird mit den folgenden Befehlseinschränkungenausgeführt: restricted |
Settable-Variablen | Diese Aufgabe verfügt über die Berechtigung zum Festlegen der folgenden Variablen: Das Festlegen von Variablen ist deaktiviert. |
Agentversion | 2.182.1 oder höher |
Vorgangskategorie | Nützlichkeit |
Anforderung | BESCHREIBUNG |
---|---|
Pipelinetypen | YAML, klassischer Build |
Läuft auf | Agent, DeploymentGroup |
Anforderungen | Nichts |
Funktionen | Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag. |
Befehlseinschränkungen | Beliebig |
Settable-Variablen | Beliebig |
Agentversion | 1.91.0 oder höher |
Vorgangskategorie | Nützlichkeit |
Siehe auch
- Referenz zu Dateiabgleichsmustern
- Wie verwende ich diese Aufgabe zum Veröffentlichen von Artefakten
- Erfahren Sie, wie Sie ausführlichen Protokolle für Problembehandlungverwenden.