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.

