Назад | Перейти на главную страницу

Удалять файлы, кроме тех, которые были созданы по воскресеньям за последние 4 недели.

У меня есть сценарий, который копирует некоторые файлы и удаляет старые файлы из места назначения. сейчас он просто удаляет все, что старше 10 дней. для увеличения срока хранения резервных копий нам необходимо хранить файлы, которые были скопированы по воскресеньям за последние 4 недели и по одной последней копии ежедневно. Пожалуйста, помогите мне, я не могу найти ничего, чтобы извлечь день недели. это то, что я делаю прямо сейчас

Get-ChildItem \\xx\xx\xx\Scripted_SQL_Backup -Recurse | ? {
 -not $_.PSIsContainer -and $_.CreationTime -lt (get-date).adddays(-10)} | remove-item

Я мог бы запустить remove-item до того, как начнется копирование, и это позволит мне сохранить эту ночную резервную копию, но как мне удалить все, кроме последних 4 воскресений?

Есть ли причина, по которой это не работает?

$dow = "Sunday"
$weeksToKeep = 4
$path = "\xx\xx\xx\Scripted_SQL_Backup"
Get-ChildItem $path -Recurse |
    Where-Object {(($_.LastWriteTime.DayOfWeek -ne $dow) -or ((((Get-Date)-$_.LastWriteTime).TotalDays) -gt ($weeksToKeep*7)))} |
    Remove-Item