删除过去 4 周内周日创建的文件(除这些文件外)

删除过去 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 个星期天之外的所有内容?

答案1

有什么原因导致它不起作用吗?

$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

相关内容