繁体   English   中英

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

[英]How to delete 30 day older files and keep last day files for each month in powershell

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

信息202107170102.7z

testdatbase202107170242.7z

otherdb202107170245.7z

$limit = (Get-Date).AddDays(-30)
$path = "C:\Some\Path"

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)
}

我相信您可以使用此辅助函数使其工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM