El comando Rename-Item en PowerShell se utiliza para cambiar el nombre de archivos, carpetas y otros elementos en el sistema de archivos o en otros espacios de nombres (como el registro de Windows). Es útil para tareas de administración, organización de archivos y automatización, permitiendo renombrar elementos de manera sencilla y rápida.
Rename-Item modifica el nombre de un archivo o carpeta existente. Se puede usar para cambiar el nombre de un solo archivo o de múltiples elementos mediante el uso de comodines (* y ?). También permite renombrar rutas completas y administrar cambios en estructuras de carpetas, simplificando la gestión de archivos en scripts automatizados.
Rename-Item -Path <RutaDelElemento> -NewName <NuevoNombre>
Rename-Item -Path "C:\Users\Usuario\Documents\archivo1.txt" -NewName "archivo2.txt"
Este comando cambia el nombre de archivo1.txt a archivo2.txt en la carpeta Documents, manteniendo la misma ubicación.
Rename-Item -Path "C:\Proyectos\ProyectoAntiguo" -NewName "ProyectoNuevo"
Cambia el nombre de la carpeta ProyectoAntiguo a ProyectoNuevo en la ubicación C:\Proyectos.
Rename-Item -Path "C:\Datos\Informe_2023.csv" -NewName "Informe_Actual.csv"
Renombra un archivo Informe_2023.csv a Informe_Actual.csv, sin modificar la extensión .csv.
Rename-Item -Path "C:\Imagenes\*.jpeg" -NewName {$_.Name -replace ".jpeg", ".jpg"}
Este comando busca todos los archivos con extensión .jpeg en la carpeta Imagenes y los renombra para que tengan la extensión .jpg. El bloque de script {$_.Name -replace ".jpeg", ".jpg"} se usa para reemplazar la extensión en el nombre de cada archivo.
Get-ChildItem -Path "C:\Reportes\reporte.txt" | Rename-Item -NewName { "reporte_" + $_.LastWriteTime.ToString("yyyyMMdd") + ".txt" }
Este comando renombra reporte.txt agregando la fecha de última modificación como sufijo, por ejemplo, reporte_20231007.txt.
-WhatIf
Rename-Item -Path "C:\Proyectos\ProyectoAntiguo" -NewName "ProyectoNuevo" -WhatIf
El parámetro -WhatIf muestra lo que el comando haría sin ejecutar el cambio real, útil para verificar antes de hacer modificaciones permanentes.
$files = Get-ChildItem -Path "C:\Fotos\*.jpg"
$count = 1
foreach ($file in $files) {
$newName = "Foto_" + $count.ToString() + ".jpg"
Rename-Item -Path $file.FullName -NewName $newName
$count++
}
Este script renombra todos los archivos .jpg en la carpeta Fotos de manera secuencial, resultando en archivos con nombres como Foto_1.jpg, Foto_2.jpg, etc.
-Force
Rename-Item -Path "C:\Carpeta\SoloLectura.txt" -NewName "NuevoNombre.txt" -Force
El parámetro -Force se utiliza para renombrar archivos de solo lectura o protegidos, si el usuario tiene permisos adecuados.
Rename-Item -Path "HKCU:\Software\MiAplicacion\ConfiguracionVieja" -NewName "ConfiguracionNueva"
Renombra una clave de registro en la ruta especificada, cambiando ConfiguracionVieja por ConfiguracionNueva en el registro del usuario.
Rename-Item.
-Force: El uso de -Force sobrescribirá archivos o nombres existentes sin advertencia, por lo que debe usarse con precaución.
$_: Al usar $_, PowerShell permite acceder a cada archivo individualmente en un foreach o Get-ChildItem, facilitando renombrados dinámicos.
Move-Item: Permite mover archivos y carpetas a una nueva ubicación. Puede utilizarse también para cambiar el nombre si se especifica una nueva ruta completa.
Move-Item -Path "C:\Carpeta\archivo1.txt" -Destination "C:\Carpeta\archivo2.txt"
Test-Path: Comprueba si un archivo o carpeta existe en la ubicación especificada.
Get-ChildItem: Recupera una lista de archivos y carpetas en una ruta específica, útil para combinar con Rename-Item en operaciones de renombrado masivo.
Puedes consultar más detalles sobre Rename-Item en la documentación oficial de Microsoft.
Jorge García
Fullstack developer