RSS
email

Script para eliminar archivos más antiguos de X días

imageHoy he preparado un script bastante sencillo para eliminar todos los ficheros, directorios más antiguos de 8 días, ésto es útil en situaciones en las que se tiene una carpeta compartida donde se almacenan archivos temporales, en carpetas de archivos de log....
Éste elimina los archivos cuya fecha de creación es anterior a 8 días

Get-ChildItem -recurse |if {$_.CreationTime -lt (get-date).AddDays(-8)} |Remove-Item -recurse -Force


Y éste elimina todos los archivos cuya última modificación es mayor a 8 días



Get-ChildItem -recurse |if {$_.LastWriteTime -lt (get-date).AddDays(-8)} |Remove-Item -recurse -Force




En este enlace hay una función ya implementada:


http://www.winblogs.net/index.php/2009/10/01/delete-files-older-from-in-powershell/



## Este script elimina todos los archivos (no directorios) 
## que sean más antiguos de $NumDays, y genera un archivo log ## de los archivos eliminados

$folder = "C:\ejemplo" # Carpeta de ejemplo
$NumDays = 90 # Número de días
$CurDate = get-date # Guarda en la variable la fecha actual
$TestDate = $Curdate.AddDays(-$NumDays) # set TestDate
# Crea el archivo de log
$strData = "Files deleted from: " + $folder + " on " + $CurDate

## Busca de forma recursiva los archvos que son más antiguos de ## $NumDays

get-childitem $folder -recurse | foreach {
If ($_.GetType().Name -eq "FileInfo")
{
If ($_.LastWriteTime -lt $TestDate)
{
$strData = "File to delete: " + $_.Name + " " + $_.LastWriteTime
$strData | out-file -Append DeletedFiles.log
$_.Delete()
$strData | out-file "c:\DeletedFiles.log"
}
}
}



Éste script es una modificación de:

http://richardsiddaway.spaces.live.com/blog/cns!43CFA46A74CF3E96!225.entry


Bookmark and Share

1 comentarios:

Unknown dijo...

una consulta, no mre guarda en los logs los archivos que borra sino solamente el ultimo que borra, que seria lo que esta mal?

 

Recent Posts

Friends

Categories