$backupFolder = "Путь_к_папке_с_бэкапами"
$n = 5 # Количество последних бэкапов, которые нужно сохранить
$z = 30 # Количество дней, после которых бэкапы будут удалены
# Получить список всех бэкапов в папке
$backups = Get-ChildItem -Path $backupFolder | Where-Object { $_.Extension -eq ".bak" } | Sort-Object -Property LastWriteTime
# Получить бэкапы, которые нужно удалить (старше $z дней, кроме последних $n)
$backupsToDelete = $backups | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-$z) } | Select-Object -SkipLast $n
# Удалить бэкапы
foreach ($backup in $backupsToDelete) {
Remove-Item $backup.FullName -Force
Write-Host "Удален бэкап: $($backup.Name)"
}
Write-Host "Операция завершена."