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

如何编写脚本批量删除各子文件夹下帧序列的前5个文件

PowerShell 批处理脚本方案

以下两个场景的脚本均基于Windows PowerShell 5.1及以上版本运行,运行前请先完整备份所有帧文件避免数据丢失。

场景1:已将帧按245个/组拆分到不同文件夹,需删除每个文件夹内前5帧

实现逻辑:遍历所有分组子文件夹,对每个文件夹内的帧按文件名排序后删除前5个文件。

# 替换为你存放所有分组文件夹的根路径
$groupRoot = "C:\your\grouped\frames\path"

Get-ChildItem -Path $groupRoot -Directory | ForEach-Object {
    # 按文件名排序后取前5项删除,如需调整排序规则可修改Sort-Object参数
    Get-ChildItem -Path $_.FullName -File | Sort-Object Name | Select-Object -First 5 | Remove-Item -Force
}

测试方法:先将Remove-Item -Force替换为ForEach-Object {Write-Host "待删除:"$_.FullName},确认输出的待删除文件列表无误后再执行删除操作。

场景2:分文件夹前按「删除5个、跳过240个、再删除5个」规则批量处理

实现逻辑:将所有未分组的帧按文件名排序后,以245个文件为一个处理块,每个块删除前5个文件,保留后240个文件,循环处理所有帧。

# 替换为你存放未分组帧的根路径
$rawFrameRoot = "C:\your\raw\frames\path"
$blockSize = 245
$deleteCountPerBlock = 5

# 读取所有帧并按文件名排序
$allFrames = Get-ChildItem -Path $rawFrameRoot -File | Sort-Object Name

for ($i = 0; $i -lt $allFrames.Count; $i += $blockSize) {
    # 取当前块的前N个文件删除
    $allFrames | Select-Object -Skip $i -First $deleteCountPerBlock | Remove-Item -Force
}

注意事项

  • 如果你的帧文件命名存在补零位数不一致、带自定义前缀等情况,导致默认文件名排序不符合帧序列顺序,需要自行调整Sort-Object的逻辑,提取文件名中的数字序号进行排序
  • 所有删除操作不可逆,执行前务必做好文件备份,优先使用测试逻辑验证待删除列表的正确性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 08:57:03