# 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:
- 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. - 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
.