Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Use esta tarea para copiar archivos de una carpeta de origen en una carpeta de destino mediante patrones de coincidencia. (Los patrones de coincidencia solo coincidirán con las rutas de acceso de archivo, no las rutas de acceso de carpeta).
Sintaxis
# 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.
Entradas
SourceFolder
-
carpeta de origen
string
.
Opcional. Carpeta que contiene los archivos que desea copiar. Si la carpeta está vacía, la tarea copia los archivos de la carpeta raíz del repositorio como si se especificara $(Build.SourcesDirectory)
.
Si la compilación genera artefactos fuera del directorio de orígenes, especifique $(Agent.BuildDirectory)
copiar archivos del directorio creado para la canalización.
Contenido de Contents
-
string
. Obligatorio. Valor predeterminado: **
.
Rutas de acceso de archivo que se van a incluir como parte de la copia. Esta cadena admite varias líneas de patrones de coincidencia.
Por ejemplo:
-
*
copia todos los archivos de la carpeta de origen especificada. -
**
copia todos los archivos de la carpeta de origen especificada y todos los archivos de todas las subcarpetas. -
**\bin\**
copia todos los archivos de forma recursiva desde cualquier carpeta bin.
El patrón se usa para coincidir solo con rutas de acceso de archivo, no rutas de acceso de carpeta. Especifique patrones, como **\bin\**
en lugar de **\bin
.
El ajuste de caracteres especiales en []
se puede usar para escapar caracteres globales literales en un nombre de archivo. Por ejemplo, el nombre de archivo literal hello[a-z]
se puede escapar como hello[[]a-z]
. Para obtener más información, consulte Referencia de patrones de coincidencia de archivos.
Use el separador de ruta de acceso que coincida con el tipo de agente de compilación. Por ejemplo, /
debe usarse para los agentes de Linux. A continuación se muestran más ejemplos.
carpeta de destino de TargetFolder
-
string
. Obligatorio.
La carpeta de destino o la ruta de acceso UNC que contendrá los archivos copiados. Puede usar variables de . Ejemplo: $(build.artifactstagingdirectory)
.
CleanTargetFolder
-
limpiar carpeta de destino
boolean
. Valor predeterminado: false
.
Opcional. Elimina todos los archivos existentes de la carpeta de destino antes del proceso de copia.
OverWrite
-
sobrescribir
boolean
. Valor predeterminado: false
.
Opcional. Reemplaza los archivos existentes en la carpeta de destino.
flattenFolders
-
de carpetas planas
boolean
. Valor predeterminado: false
.
Opcional. Aplana la estructura de carpetas y copia todos los archivos en la carpeta de destino especificada.
preserveTimestamp
-
Conservar marca de tiempo de destino
boolean
. Valor predeterminado: false
.
Conserva la marca de tiempo del archivo de destino mediante el archivo de origen original.
retryCount
-
Recuento de reintentos para copiar el archivo
string
. Valor predeterminado: 0
.
Especifica el número de reintentos para copiar el archivo. Esta cadena es útil para problemas intermitentes, como rutas de destino UNC en un host remoto.
delayBetweenRetries
-
Retraso entre dos reintentos.
string
. Valor predeterminado: 1000
.
Especifica el retraso entre dos reintentos. Esta cadena es útil para problemas intermitentes, como rutas de destino UNC en un host remoto.
ignoreMakeDirErrors
-
Ignorar errores durante la creación de la carpeta de destino.
boolean
. Valor predeterminado: false
.
Ignora los errores que se producen durante la creación de la carpeta de destino. Esta cadena es útil para evitar problemas con la ejecución paralela de tareas por parte de varios agentes dentro de una carpeta de destino.
Opciones de control de tareas
Todas las tareas tienen opciones de control además de sus entradas de tarea. Para obtener más información, consulte Opciones de control y propiedades de tareas comunes.
Variables de salida
Ninguno.
Observaciones
Si no coinciden los archivos, la tarea seguirá informando de que se ha realizado correctamente.
- Si
Overwrite
esfalse
y ya existe un archivo coincidente en la carpeta de destino, la tarea no notificará un error, sino que registrará que el archivo ya existe y lo omitirá. - Si
Overwrite
estrue
y ya existe un archivo coincidente en la carpeta de destino, el archivo coincidente se sobrescribirá.
Ejemplos
Copie el archivo en el directorio de ensayo de artefactos y publíquelo
steps:
- task: CopyFiles@2
inputs:
contents: '_buildOutput/**'
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: $(Build.ArtifactStagingDirectory)
artifactName: MyBuildOutputs
Copiar ejecutables y un archivo Léame
Objetivo
Desea copiar solo el archivo Léame y los archivos necesarios para ejecutar esta aplicación de consola de C#:
`-- ConsoleApplication1
|-- ConsoleApplication1.sln
|-- readme.txt
`-- ClassLibrary1
|-- ClassLibrary1.csproj
`-- ClassLibrary2
|-- ClassLibrary2.csproj
`-- ConsoleApplication1
|-- ConsoleApplication1.csproj
Nota:
ConsoleApplication1.sln contiene una carpeta bin con archivos .dll y .exe, consulte los resultados a continuación para ver qué se mueve.
En la pestaña Variables, $(BuildConfiguration)
se establece en release
.
Ejemplo con varios patrones de coincidencia:
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)'
Ejemplo con condición OR:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
Contents: |
ConsoleApplication1\ConsoleApplication1\bin\**\?(*.exe|*.dll)
ConsoleApplication1\readme.txt
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Ejemplo con la condición 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)'
Ejemplo con variables en la sección de contenido
- task: CopyFiles@2
inputs:
Contents: '$(Build.Repository.LocalPath)/**'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Resultados
Estos archivos se copian en el directorio provisional:
`-- ConsoleApplication1
|-- readme.txt
`-- ConsoleApplication1
`-- bin
`-- Release
| -- ClassLibrary1.dll
| -- ClassLibrary2.dll
| -- ConsoleApplication1.exe
Copie todo del directorio de origen excepto la carpeta .git
Ejemplo con varios patrones de coincidencia:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: |
**/*
!.git/**/*
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Requisitos
Requisito | Descripción |
---|---|
Tipos de canalización | YAML, compilación clásica |
Se ejecuta en | Agente, DeploymentGroup |
demandas | Ninguno |
Capacidades | Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo. |
restricciones de comandos | Esta tarea se ejecuta con las restricciones de comandos siguientes: restringido |
variables settable | Esta tarea tiene permiso para establecer las siguientes variables: La configuración de variables está deshabilitada. |
Versión del agente | 2.182.1 o superior |
Categoría de tarea | Utilidad |
Requisito | Descripción |
---|---|
Tipos de canalización | YAML, compilación clásica |
Se ejecuta en | Agente, DeploymentGroup |
demandas | Ninguno |
Capacidades | Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo. |
restricciones de comandos | Cualquiera |
variables settable | Cualquiera |
Versión del agente | 1.91.0 o superior |
Categoría de tarea | Utilidad |