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