Скопируйте первый файл месяца - PullRequest
0 голосов
/ 24 мая 2019

У меня есть резервная папка, и мне нужно копировать первый файл месяца из нее для каждого месяца. Проблема в том, что в каждом месяце первые файлы имеют разные даты (не 0101, 0102,0103 и т. Д., А 0401, 0302, 0503 и т. Д. (Ddmm)).

Можно ли в powershell установить условие для имени файла, например: если имя файла содержит в этом месте (месяц) 01, скопируйте файл, имя которого содержит в этом месте (день) число, которое как можно ближе к 1?

Тип имени файла: filebackup02012019.

Заранее спасибо!

1 Ответ

1 голос
/ 24 мая 2019

Группировка файлов по месяцам

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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...