Script PowerShell para Renombrar Archivos con Nombres Aleatorios, Fecha con Nombre 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 el nombre base y la extensión del archivo
$Extension = $Archivo.Extension
$NombreBase = $Archivo.BaseName

# Construir el nuevo nombre del archivo manteniendo la extensión
$NuevoNombre = "$CadenaAleatoria`_$FechaHora`_$NombreBase$Extension"

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

Explicación:

  1. Directorio: Se define el directorio donde se encuentran los archivos.
  2. Set-Location: Cambia al directorio especificado.
  3. Get-ChildItem: Lista todos los archivos del directorio (-File asegura que solo seleccione archivos, no carpetas).
  4. Cadena aleatoria: Se genera usando caracteres aleatorios de letras (mayúsculas y minúsculas) y números.
  5. Fecha y hora: Formateada en YYYYMMDD-HHMMSS usando Get-Date.
  6. Construcción del nuevo nombre: Concatenación de la cadena aleatoria, fecha/hora y el nombre base con la extensión original.
  7. Rename-Item: Renombra el archivo con el nuevo nombre generado.

Ejemplo:

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