如何在powershell中删除30天以前的文件并保留每个月的最后一天文件



可以使用以下cmdlet删除所有超过30天的文件,但我希望保留每个月的最后一天备份。我的备份文件包含没有相等前缀的日期格式yyyymmdhhmm。

信息202107170102.7z

测试基准202107170242.7z

其他db202107170245.7z

$limit = (Get-Date).AddDays(-30)
$path = "C:SomePath"
Get-ChildItem -Path $path -Recurse -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limit } | Remove-Item -Force

如有任何帮助,将不胜感激

此函数接受一个日期对象并返回当月的最后一天:

function Get-LastDayOfMonth{
param(
[System.DateTime]$date
)
$next_month = $date.AddMonths(1).Month 
while($date.Month -ne $next_month){
$date = $date.AddDays(1)
}
return $date.AddDays(-1)
}

我相信你可以用这个助手函数使它工作。

相关内容

最新更新