Compartir vía


CopyFiles@2: tarea Copiar archivos v2

Use esta tarea para copiar archivos de una carpeta de origen a una carpeta de destino usando patrones de coincidencia. (Los patrones de coincidencia solo coincidirán con las rutas de acceso de archivo, no las rutas de acceso de carpeta).

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.

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 $(Build.SourcesDirectory) se hubiera especificado.

Si la compilación produce artefactos fuera del directorio de orígenes, especifique $(Agent.BuildDirectory) para copiar archivos del directorio creado para la canalización.


Contents - Contenido
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 comprobar la coincidencia solo de las rutas de acceso de archivo, no de las rutas de acceso de carpeta. Especifique patrones, como **\bin\** en lugar de **\bin.

Use el separador de ruta de acceso que coincida con el tipo de agente de compilación. Por ejemplo, / se debe usar para los agentes de Linux. A continuación se muestran más ejemplos.


TargetFolder - Carpeta de destino
string. Obligatorio.

La carpeta de destino o la ruta de acceso UNC que contendrá los archivos copiados. Puede usar variables. Ejemplo: $(build.artifactstagingdirectory).


CleanTargetFolder - Limpiar carpeta de destino
boolean. Valor predeterminado: false.

Opcional. Elimina todos los archivos existentes en 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 - Aplanar carpetas
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 - Número de reintentos para copiar el archivo
string. Valor predeterminado: 0.

Especifica el recuento de reintentos para copiar el archivo. Esta cadena es útil para problemas intermitentes, como rutas de acceso 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 acceso de destino UNC en un host remoto.


ignoreMakeDirErrors - Omitir errores durante la creación de la carpeta de destino.
boolean. Valor predeterminado: false.

Omite 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 varios agentes dentro de una carpeta de destino.


Opciones de control de tareas

Todas las tareas tienen opciones de control además de las entradas de tareas. Para obtener más información, vea Opciones de control y propiedades de tareas comunes.

Variables de salida

Ninguno.

Observaciones

Si no coinciden archivos, la tarea seguirá informando de que se ha realizado correctamente.

  • Si Overwrite es false y ya existe un archivo coincidente en la carpeta de destino, la tarea no notificará errores, sino que registrará que el archivo ya existe y omitirlo.
  • Si Overwrite es true y ya existe un archivo coincidente en la carpeta de destino, se sobrescribirá el archivo coincidente.

Ejemplos

Copia del archivo en el directorio provisional de artefactos y publicación

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

Copia de archivos 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. Vea los resultados siguientes para saber lo que 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 la condición O:

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 NO:

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

Results

Estos archivos se copian en el directorio provisional:

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

Copia de todo el contenido 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
Peticiones None
Capabilities Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
Restricciones de comandos Esta tarea se ejecuta con las siguientes restricciones de comandos: restringido
Variables que se pueden establecer 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 la tarea: Utilidad
Requisito Descripción
Tipos de canalización YAML, compilación clásica
Se ejecuta en Agente, DeploymentGroup
Peticiones None
Capabilities Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
Restricciones de comandos Any
Variables que se pueden establecer Any
Versión del agente 1.91.0 o superior
Categoría de la tarea: Utilidad

Consulte también