Búsqueda de sitios web

PowerShell: Cómo eliminar los últimos N caracteres de los nombres de archivos


A menudo, es posible que desee utilizar PowerShell para eliminar los últimos N caracteres de los nombres de archivos en un directorio en particular.

Puede utilizar la siguiente sintaxis para hacerlo:

gci | ren -newname {$_.Name.substring(0,$_.BaseName.length-5) + $_.Extension}

Este ejemplo en particular eliminará los últimos 5 caracteres de cada nombre de archivo en el directorio actual.

Esto es lo que hacen los distintos comandos:

  • gci: un alias para Get-ChildItem, esto recupera todos los archivos en el directorio actual.
  • ren: un alias para Rename-Item, esto especifica un nuevo nombre para cada archivo.
  • $_.Name: recupera el nombre del archivo actual.
  • subcadena: especifica que el nuevo nombre de archivo debe ser igual al nombre de archivo actual, desde la posición de índice 0 (el primer carácter) hasta la longitud total del nombre de archivo actual menos 5.
  • $_.Extension: especifica que la extensión del archivo original debe volver a agregarse al nombre del archivo.

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

Ejemplo: Cómo eliminar los últimos N caracteres de los nombres de archivos en PowerShell

Primero, podemos usar el comando gci (un alias para el cmdlet Get-ChildItem) para ver primero todos los nombres de archivos en nuestro directorio actual:

Podemos ver que hay cuatro archivos en nuestro directorio actual y todos terminan en la convención de nomenclatura _data.

Supongamos que queremos eliminar los últimos 5 caracteres de cada nombre de archivo, lo que efectivamente eliminará _data del final de cada nombre de archivo.

Podemos utilizar la siguiente sintaxis para hacerlo:

gci | ren -newname {$_.Name.substring(0,$_.BaseName.length-5) + $_.Extension}

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

Observe que cuando usamos el comando gci nuevamente para ver todos los archivos en el directorio actual, podemos ver que los últimos 5 caracteres se han eliminado de cada nombre de archivo.

Nota: Siéntase libre de reemplazar 5 en el código para reemplazar una cantidad diferente de caracteres del final de los nombres de archivo.

Artículos relacionados