Reemplazar el nombre (o parte de él) de varios ficheros a la vez con PowerShell

Podemos renombrar y reemplazar el titulo de nuestros ficheros, o parte de el, de forma rápida a través de PowerShell. Debemos acceder a la carpeta donde estan los ficheros y ejecutar el siguiente comando:

get-childitem FILES_QUERY | foreach { Rename-Item -LiteralPath $_ $_.Name.Replace("TEXT_TO_REPLACE","TEXT_TO_APPEAR") }

Donde FILES_QUERY es el selector de ficheros, TEXT_TO_REPLACE es el texto que queremos eliminar y TEXT_TO_APPEAR es el texto que aparecerá en su lugar.

Por ejemplo, si tenemos una lista de archivos MKV donde todos terminan con el texto ” (1080p x265)”, podemos quitar ese texto de la siguiente manera:

get-childitem *.mkv | foreach { Rename-Item -LiteralPath $_ $_.Name.Replace(" (1080p x265)","") }

De este modo, los ficheros:

  • Mis Vacaciones 2021 Parte 1 (1080p x265).mkv
  • Mis Vacaciones 2021 Parte 2 (1080p x265).mkv
  • Mis Vacaciones 2021 Parte 3 (1080p x265).mkv

Pasarán a ser:

  • Mis Vacaciones 2021 Parte 1.mkv
  • Mis Vacaciones 2021 Parte 2.mkv
  • Mis Vacaciones 2021 Parte 3.mkv

UPDATE:

Para usar el script en multiples niveles de carpetas se puede añadir recursividad:

get-childitem *.mkv -Recurse -Depth 2 | foreach { Rename-Item -LiteralPath $_ $_.Name.Replace(" (1080p x265)","") }

Categories:

No Responses

Leave a Reply

Your email address will not be published. Required fields are marked *