Eliminación automática de archivos y carpetas con más de N días / Sudo Null IT News

Una de las tareas probablemente clásicas de un administrador de sistemas es organizar un recurso compartido común (volcado de archivos) para el rápido intercambio de datos entre empleados.

Uno de los problemas es que este “Intercambiador” se convierte en una herramienta para el almacenamiento de archivos a largo plazo, lo cual es inaceptable. Por lo tanto, informamos a todos los empleados que los datos se eliminarán periódicamente N días después de su colocación en la pelota.

Y nos armamos con powershell y programador de tareas, creamos un script con el siguiente contenido y lo configuramos en el programador para su ejecución diaria.

#Дата с которой сравнивать. В этом случае -15 дней от текущей даты
$date = (Get-Date).AddDays(-15)
#Путь до директории откуда удалять файлы
$path = "d:\data\public"
#Расположение отчетов 
$report = "C:\scripts\Result\file_list.txt"

#Работаем с файлами
#Вывод спписка всех файлов без  папок (в т.ч. внутри папок) старше чем значение в $date
$filelist = Get-ChildItem -Recurse -Path $path -file | Where-Object -Property CreationTime -lT $date  
$filelist  | Sort-Object -Property CreationTime | ft CreationTime ,VersionInfo | tee $report
#Удаляем файлы
#$filelist | Remove-Item 

#Работаем с каталогами
#вывод списка пустых директорий(где нет ни файлов ни директорий) старше чем дата $date 
$folderlist =  Get-ChildItem -Recurse -Path $path -Directory | Where-Object -Property LastWriteTime -lT $date | where { $_.psiscontainer -eq $true -and $_.GetFiles().count -eq 0 -and $_.GetDirectories().count -eq 0 } 
#вывод списка пустых директорий (где нет файлов, но есть директории)  старше чем дата $date 
#$folderlist =  Get-ChildItem -Recurse -Path $path -Directory | Where-Object -Property LastWriteTime -lT $date | where { $_.psiscontainer -eq $true -and $_.GetFiles().count -eq 0 } 
$folderlist | Sort-Object -Property LastWriteTime | ft LastWriteTime ,FullName | tee $report -Append
#Удаляем каталоги
#$folderlist | Remove-Item

Ps Chukchi no es un escritor ni un gran codificador, escribo lo mejor que puedo

Enlace a git

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *