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-ItemLa 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.

