PowerShell脚本,用于在子文件夹的某个保留期后删除文件,并创建已删除文件的日志



我是Powershell脚本的新手。对它了解不多。我们有一个数据库服务器的文件夹结构,每个数据库的保留策略文件夹名称分别为15天、45天和90天。在每个子文件夹中有4个子文件夹,包括完整的、增量的等,每个子文件夹都有保留期的文件。需要删除每个子文件夹中超过保留期的文件。路径:\sql-sharepath\DB-server\15D/45D/90D\full/Inc/partial有人能帮忙吗?

提前谢谢。

如果文件都在相同的文件夹深度,您可以尝试这样的方法,只需在文件夹名称中查找保留日期,并在其周围使用通配符:

# 15 Days
$15Days = Get-ChildItem -Path "\sql-sharepathDB-server15D*" -Recurse | 
Where-Object -Property LastWriteTime -LT (Get-Date).AddDays(-15)
# log the files to delete
$15Days | Select FullName,LastWriteTime | Export-Csv -Append "\logsdeleted.log" -NoTypeInformation
# delete
$15Days | Remove-Item -WhatIf

并针对不同的保留期重复

-WhatIf标志意味着它实际上不会删除任何内容。它只会打印出它在做什么和文件路径,这样你就可以知道它是否会首先运行

[编辑]添加Get-ChildItem -Recurse以包含子文件夹

最新更新