Cómo cambiar el nombre de varios archivos en una carpeta con PowerShell
Para renombrar varios archivos en una carpeta, se puede usar el Explorador de archivos de Windows. Sin embargo, realizar este proceso de forma manual es tedioso y muy propenso a errores, especialmente cuando se trata de una gran cantidad de elementos.
Afortunadamente, existe una forma más rápida y eficiente de cambiar el nombre de múltiples archivos mediante PowerShell, el potente lenguaje de scripting y consola de comandos de Windows. Con PowerShell, puedes utilizar una sola instrucción para modificar todos los archivos que coincidan con un criterio específico (como contener una palabra clave o tener una extensión determinada) para organizarlos mejor, seguir un patrón definido o eliminar caracteres no deseados.
Índice
Requisitos previos
Antes de ejecutar el proceso, asegúrate de cumplir con lo siguiente:
- Consola de Windows PowerShell abierta.
- Conocer la ruta exacta o estar posicionado en el directorio que contiene los archivos a modificar.
Comando base
El comando fundamental que necesitas utilizar sigue esta estructura:
Dir | Rename-Item -NewName { $_.Name -replace 'texto original','nuevo texto' }
Desglose de componentes
Este comando combina varias herramientas de PowerShell mediante el uso de tuberías (pipelines). A continuación, se explica la función de cada elemento:
| Componente | Descripción |
|---|---|
Dir |
Alias del cmdlet Get-ChildItem. Obtiene todos los elementos del directorio actual. (Nota: Puedes especificar una ruta diferente si deseas operar en otra carpeta). |
| |
Operador de canalización. Envía la salida de datos del primer comando directamente al siguiente. |
Rename-Item |
Cmdlet encargado específicamente de cambiar el nombre de un elemento en el sistema de archivos. |
-NewName |
Parámetro que define el nuevo nombre del elemento. En este formato, se utiliza una expresión entre llaves {} para generar el nuevo nombre de forma dinámica. |
$_ |
Variable especial que representa el elemento actual que está procesando la canalización. Al usar $_.Name, se accede directamente a la propiedad que contiene el nombre del archivo. |
-replace |
Operador que busca y reemplaza una parte de una cadena de texto por otra. Reemplaza el texto original por el nuevo texto. Soporta el uso de expresiones regulares para patrones más complejos. |
Ejemplo práctico
Para ilustrar el funcionamiento del comando, supongamos que tienes una carpeta con imágenes y necesitas actualizar tanto su prefijo como su extensión.
Situación inicial
Los archivos actuales en la carpeta son:
foto 1.jpg
foto 2.jpg
foto 3.jpg
foto 4.jpg
foto 5.jpg
El objetivo es cambiar el nombre de todos los archivos para que tengan el prefijo vacaciones en lugar de foto, y cambiar la extensión de .jpg a .png.
Procedimiento
Para aplicar el cambio de manera secuencial en la misma línea, utiliza el siguiente comando:
Dir | Rename-Item -NewName { $_.Name -replace 'foto','vacaciones' -replace '.jpg','.png' }
Resultado
Después de ejecutar el comando, los archivos en tu carpeta quedarán renombrados automáticamente de la siguiente manera:
vacaciones 1.png
vacaciones 2.png
vacaciones 3.png
vacaciones 4.png
vacaciones 5.png
Notas adicionales
Caution
Advertencia de seguridad: Este comando aplica los cambios de forma inmediata y no realiza una copia de seguridad de los archivos originales. Debes tener extrema precaución al usarlo y asegurarte de que los valores proporcionados al operador -replace sean precisos para evitar nombres incorrectos o pérdida de referencias.