You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写PowerShell脚本实现各子目录独立保留最新5个备份文件

PowerShell 分文件夹清理过期备份脚本

调整后可运行代码

# 配置项:备份根目录路径、每个文件夹需保留的最新文件数量
$rootPath = "C:\temp"
$keepCount = 5

# 获取根目录下所有层级的子文件夹
$subFolders = Get-ChildItem -Path $rootPath -Directory -Recurse

foreach ($folder in $subFolders) {
    # 读取当前文件夹下的所有文件,按创建时间倒序排列(最新的排在最前)
    $files = Get-ChildItem -Path $folder.FullName -File | Sort-Object -Property CreationTime -Descending
    # 跳过前N个最新文件,剩余文件直接删除
    # 测试阶段请保留-WhatIf参数,仅输出待删除文件列表不执行实际删除,确认无误后删除该参数即可
    $files | Select-Object -Skip $keepCount | Remove-Item -Force -WhatIf
}

# 若需同时清理根目录本身存储的备份文件,取消注释下方代码即可
<#
$rootFiles = Get-ChildItem -Path $rootPath -File | Sort-Object -Property CreationTime -Descending
$rootFiles | Select-Object -Skip $keepCount | Remove-Item -Force -WhatIf
#>

注意事项

  • 若备份文件判断规则需以修改时间为准,将代码中的CreationTime替换为LastWriteTime即可
  • 若FTP目录为网络共享路径,建议填写UNC格式路径(如\\10.0.0.5\ftp_backup),避免定时任务执行时读取不到映射盘
  • 定时任务执行指令参考:powershell.exe -ExecutionPolicy Bypass -NoProfile -File "你的脚本完整存储路径.ps1",运行账户需分配对应目录的读写删除权限

内容的提问来源于stack exchange,提问作者ar3y0udumb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 08:18:00