# 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:
- Directorio: Se define el directorio donde se encuentran los archivos.
- Set-Location: Cambia al directorio especificado.
- Get-ChildItem: Lista todos los archivos del directorio (
-File
asegura que solo seleccione archivos, no carpetas). - Cadena aleatoria: Se genera usando caracteres aleatorios de letras (mayúsculas y minúsculas) y números.
- Fecha y hora: Formateada en
YYYYMMDD-HHMMSS
usandoGet-Date
. - Construcción del nuevo nombre: Concatenación de la cadena aleatoria, fecha/hora y el nombre base con la extensión original.
- 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
.