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

如何用PowerShell筛选同系列ZIP文件的最大版本文件

解决PowerShell按系列保留ZIP文件最大版本的问题

你的原脚本问题在于直接计算了所有文件的全局最大版本号,导致只能筛选出所有等于这个全局最大值的文件,而不是每个系列各自的最大版本。下面是修改后的脚本,实现按前缀系列分组并保留每组的最大版本文件:

# 获取目标文件夹下所有ZIP文件
$files = Get-ChildItem -Filter "*.zip"

# 按文件系列分组:提取文件名中最后一个下划线前的部分作为分组键
$fileGroups = $files | Group-Object -Property {
    $parts = $_.BaseName.Split("_")
    # 拼接除最后一个元素外的所有部分,得到系列名
    $parts[0..($parts.Count - 2)] -join "_"
}

# 遍历每个分组,筛选出当前组内版本号最大的文件
$largestFiles = $fileGroups | ForEach-Object {
    # 对当前组的文件按版本号降序排序,取第一个(即最大版本)
    $_.Group | Sort-Object -Property { [int]($_.BaseName.Split("_")[-1]) } -Descending | Select-Object -First 1
}

# 输出每个系列的最大版本文件
Write-Output $largestFiles

关键修改说明:

  • 使用Group-Object按系列名分组,系列名通过拆分文件名并去掉最后一个版本号部分得到
  • 对每个分组内部的文件,按版本号转换为整数后降序排序,取第一个即为该系列的最大版本文件
  • 用BaseName(不带扩展名的文件名)处理,避免拆分扩展名的额外步骤

测试你给出的文件名列表,脚本会正确输出:
A1_Fantasic_World_21.zip、B1_Mythical_Realms_12.zip、C1_Eternal_Frame_Corporation_3.zip

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 15:50:24