我有一个备份文件夹,我需要从每个月复制一个月的第一个文件。问题在于每个月的第一个文件都有不同的日期(不是0101、0102、0103等,而是0401、0302、0503等(ddmm))。
是否有可能在Powershell中设置文件名的条件,例如:如果文件名在该位置(月)包含01,则复制该文件在该位置(天)包含一个数字,尽可能接近1?
文件名类型:filebackup02012019。
提前谢谢!
答案 0 :(得分:1)
按月对文件分组
Get-ChildItem | Group-Object {$_.BaseName -replace '.*\d{2}(\d{2})\d{4}', '$1'}
然后按日期降序对每个组进行排序,并选择第一个结果
... | ForEach-Object {
$_.Group |
Sort-Object {$_.BaseName -replace '.*(\d{2})(\d{2})(\d{4})', '$3$2$1'} -Descending |
Select-Object -First 1
}