Script PowerShell para Renombrar Archivos con Nombres Aleatorios, Fecha y Extensión Conservada

Artículos Guías Manuales Sistemas Linux Windows Binario 0
# Directorio que contiene los archivos
$Directorio = "C:\ruta\a\tu\carpeta"

# Cambiar al directorio especificado
Set-Location -Path $Directorio

# Recorrer todos los archivos en el directorio
Get-ChildItem -File | ForEach-Object {
# Verificar si es un archivo regular (ya filtrado por -File)
$Archivo = $_

# Generar una cadena aleatoria de 6 caracteres
$CadenaAleatoria = -join ((65..90) + (97..122) + (48..57) | Get-Random -Count 6 | ForEach-Object {[char]$_})

# Obtener la fecha y hora actuales en el formato YYYYMMDD-HHMMSS
$FechaHora = Get-Date -Format "yyyyMMdd-HHmmss"

# Obtener solo la extensión del archivo
$Extension = $Archivo.Extension

# Construir el nuevo nombre del archivo sin incluir el nombre base, solo la extensión
$NuevoNombre = "$CadenaAleatoria`_$FechaHora$Extension"

# Renombrar el archivo
Rename-Item -Path $Archivo.FullName -NewName $NuevoNombre
}

Cambios realizados:

  1. Eliminar el nombre base del archivo: En lugar de incluir $Archivo.BaseName, el nuevo nombre solo utiliza la cadena aleatoria, la fecha/hora, y la extensión del archivo.
  2. Nuevo nombre: Formato del nombre es cadena_aleatoria_fecha_hora.extensión.

Ejemplo:

Si tienes un archivo llamado documento.txt, podría renombrarse como:
Ab3CdE_20241121-153000.txt.

Si tienes otro archivo llamado imagen.png, podría quedar como:
Xy9ZaT_20241121-153500.png.