Búsqueda de sitios web

PowerShell: usar Copiar elemento y excluir carpetas


A menudo, es posible que desee utilizar el cmdlet Copy-Item en PowerShell para copiar carpetas a un nuevo directorio pero excluir carpetas específicas de la copia.

Puede utilizar la siguiente sintaxis para hacerlo:

$source = "c:\users\bobbi\data3"
$destination = "c:\users\bobbi\data4"

New-Item -ItemType Directory -Force -Path $destination
Copy-Item $source\* $destination -Exclude @("*old*","baseball") -Recurse

Este ejemplo en particular copia todas las carpetas del directorio data3 al directorio data4, excluyendo cualquier carpeta que contenga "antiguo" en cualquier parte del nombre y excluyendo la carpeta denominada "béisbol".

El siguiente ejemplo muestra cómo utilizar esta sintaxis en la práctica.

Ejemplo: utilizar Copiar elemento y excluir carpetas en PowerShell

Supongamos que tenemos un directorio ubicado en la siguiente ruta:

C:\Users\bobbi\data3

Podemos escribir Dir para enumerar todos los archivos en este directorio:

Supongamos que queremos copiar todos los archivos del directorio data3 al directorio data4, excluyendo las carpetas que contengan "antiguo" en cualquier parte del nombre y excluyendo la carpeta denominada " béisbol".

Podemos utilizar la siguiente sintaxis para hacerlo:

$source = "c:\users\bobbi\data3"
$destination = "c:\users\bobbi\data4"

New-Item -ItemType Directory -Force -Path $destination
Copy-Item $source\* $destination -Exclude @("*old*","baseball") -Recurse

La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:

Podemos ver que podemos copiar con éxito todas las carpetas del directorio data3 al directorio data4, excluyendo las siguientes carpetas:

  • Todas las carpetas con "antiguo" en el nombre de la carpeta
  • La carpeta llamada “béisbol”

Nota n.º 1: utilizamos caracteres comodín ( * ) para indicar que cualquier carpeta con "antiguo" en cualquier parte del nombre debe excluirse de la copia.

Nota n.º 2: En este ejemplo, especificamos dos patrones en la matriz -Exclude, pero puede especificar tantos patrones como desee para excluir aún más carpetas de la copia. .

Artículos relacionados