Volver a la página principal
lunes 7 octubre 2024
77

Cómo renombrar archivos y carpetas en PowerShell

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.

¿Qué es y cómo usar Rename-Item en PowerShell?

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.

Sintaxis básica de Rename-Item

Rename-Item -Path <RutaDelElemento> -NewName <NuevoNombre>
  • -Path: Especifica la ruta del archivo o carpeta que se desea renombrar.
  • -NewName: Define el nuevo nombre que se asignará al elemento.

Parámetros más utilizados:

  • -Force: Renombra el elemento, incluso si es de solo lectura o si el nombre ya existe (con precaución).
  • -WhatIf: Muestra lo que haría el comando sin ejecutarlo realmente, útil para pruebas.

Ejemplos de uso de Rename-Item

1. Renombrar un archivo simple

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.

2. Renombrar una carpeta

Rename-Item -Path "C:\Proyectos\ProyectoAntiguo" -NewName "ProyectoNuevo"

Cambia el nombre de la carpeta ProyectoAntiguo a ProyectoNuevo en la ubicación C:\Proyectos.

3. Renombrar un archivo manteniendo su extensión

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.

4. Usar comodines para cambiar la extensión de múltiples archivos

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.

5. Renombrar un archivo en función de la fecha de modificación

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.

6. Previsualizar el renombrado de archivos con -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.

7. Renombrar archivos con numeración secuencial

$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.

8. Renombrar un archivo de solo lectura usando -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.

9. Renombrar claves de registro en Windows

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.

Consideraciones y recomendaciones

  • Permisos: Asegúrate de tener permisos adecuados en la ruta del archivo o carpeta para ejecutar Rename-Item.
  • Renombrar carpetas: Renombrar carpetas puede afectar rutas relacionadas en scripts o accesos directos. Verifica referencias antes de cambiar nombres de directorios importantes.
  • Uso de -Force: El uso de -Force sobrescribirá archivos o nombres existentes sin advertencia, por lo que debe usarse con precaución.
  • Renombrar con $_: Al usar $_, PowerShell permite acceder a cada archivo individualmente en un foreach o Get-ChildItem, facilitando renombrados dinámicos.

Comandos relacionados

  • 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.

Referencia oficial

Puedes consultar más detalles sobre Rename-Item en la documentación oficial de Microsoft.

Etiquetas:
powershell
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer