Búsqueda de sitios web

PowerShell: cómo eliminar archivos que coincidan con un patrón determinado


Puede utilizar la siguiente sintaxis en PowerShell para eliminar todos los archivos de un directorio cuyo nombre coincida con un patrón determinado:

Get-ChildItem $Path | Where{$_.Name -Match "new"} | Remove-Item

Este ejemplo en particular elimina todos los archivos en el directorio actual que contienen la cadena "nuevo" en algún lugar del nombre del archivo.

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

Relacionado: Cómo eliminar todos los archivos con una extensión específica en PowerShell

Ejemplo: cómo eliminar todos los archivos que coinciden con un determinado patrón usando PowerShell

Supongamos que nuestro directorio actual tiene la siguiente ruta:

C:\Users\bobbi\OneDrive\Documents\test_data

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

Podemos ver que hay cuatro archivos en este directorio:

  • mis_datos.txt
  • mis_datos_más_nuevos.txt
  • nuevo_dato.txt
  • algunos_datos_antiguos.txt

Supongamos que queremos eliminar todos los archivos que contienen "nuevo" en el nombre del archivo.

Podemos utilizar la siguiente sintaxis para hacerlo:

Get-ChildItem $Path | Where{$_.Name -Match "new"} | Remove-Item

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

Podemos ver que pudimos eliminar con éxito los dos archivos en el directorio que contenían "nuevo" en alguna parte del nombre del archivo:

  • mis_datos_más_nuevos.txt
  • nuevo_dato.txt

Cuando ejecutamos el comando Dir nuevamente, pudimos ver que los dos archivos sin "nuevo" en el nombre quedaron intactos.

Nota: La declaración Match en PowerShell distingue entre mayúsculas y minúsculas. Por ejemplo, si buscáramos "NUEVO", los dos archivos con "nuevo" en el nombre del archivo aún se habrían eliminado.

Artículos relacionados