我想使用powershell在文件夹中只保留指定zip文件的最大版本的文件。我写了一个shell脚本,但它返回了所有文件。我如何修改脚本以只选择最大版本的文件?
$files = Get-ChildItem -Filter "*.zip"
$max = $files |Measure-Object -Maximum| ForEach-Object {[int]($_.Split("_")[-1].Split(".")[0])}
$largestFiles = $files | Where-Object {[int]($_.Split("_")[-1].Split(".")[0]) -eq $max}
Write-Output $largestFiles
期望值:
A1_Fantasic_World_20.zip
A1_Fantasic_World_21.zip
B1_Mythical_Realms_11.zip
B1_Mythical_Realms_12.zip
C1_Eternal_Frame_Corporation_2.zip
C1_Eternal_Frame_Corporation_3.zip
↓
A1_Fantasic_World_21.zip
B1_Mythical_Realms_12.zip
C1_Eternal_Frame_Corporation_3.zip
A1_Fantasic_World的最大数字是21。B1_Mythical_Realms的最大数字是12。C1_Eternal_Frame_Corporation的最大数字是3。所以我想选择最大的zip版本。
1条答案
按热度按时间pgvzfuti1#
首先,将计算的属性添加到用于过滤的文件系统对象中,然后使用
Group-Object
、Sort-Object
和Select.Object
的组合过滤所需的文件。