复制月份的第一个文件

时间:2019-05-24 13:43:46

标签: powershell cmd

我有一个备份文件夹,我需要从每个月复制一个月的第一个文件。问题在于每个月的第一个文件都有不同的日期(不是0101、0102、0103等,而是0401、0302、0503等(ddmm))。

是否有可能在Powershell中设置文件名的条件,例如:如果文件名在该位置(月)包含01,则复制该文件在该位置(天)包含一个数字,尽可能接近1?

文件名类型:filebackup02012019。

提前谢谢!

1 个答案:

答案 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
}