A veces tenemos la necesidad de eliminar varias carpetas o varios archivos dentro de una carpeta casi a diario.
Aquí pongo un Script que lo que realiza es eliminar el contenido del destino (incluido subdirectorios) y que tengan X días de antigüedad.
Una vez finalizado la tarea de borrado, que envíe un e-mail notificándolo.
###################################################
### Scritp que borra destino con una antigüedad de X días###
###################################################
############## © by Alex Milla #######################
###################################################
###################################################
$Now = Get-Date
# Aquí indicamos el nº de días que tienen que tener como mínimo para ser eliminados los archivos.
$Days = “3”
# Aquí indicamos la ruta destino donde ha de borrar los archivos.$TargetFolder = “E:\srv01db”
$LastWrite = $Now.AddDays(-$days)
$Files = get-childitem $TargetFolder -recurse -force | Where {!$_.PSIsContainer} | Where {$_.LastWriteTime -le “$LastWrite”}
foreach ($File in $Files)
{IF ($Files -ne $NULL)
{write-host “Deleting File $File.FullName” -foregroundcolor “Red” ; Remove-Item $File.FullName –recurse -force
}
}
ls E:\srv01db -r -fo | ? {$_.psIsContainer} sort fullName -des | ? {!(ls $_.fullName -fo)} | ri
send-mailmessage -to «mie-email@midominio.com« -from «servidorqueenvia@midominio.com« -subject «Fin eliminacion directorios mas de 3 dias BACKUP» -body «Fin eliminacion directorios mas de 3 dias BACKUP SRV01» -SmtpServer mimailserver.midominio.com