Назад | Перейти на главную страницу

PowerShell - объединение Sort-Object в список передаваемых команд

Мне нужно обрабатывать файлы в порядке от самой старой даты создания до самой новой.

Я нашел команду sort-object, которая мне нужна, однако я не знаю, как добавить ее в мой оператор ForEach ().

Может кто-нибудь подскажет, как это сделать?

Спасибо

Get-ChildItem -Path C:\Users\Tom\ -Filter "*.journal" | Sort-Object -Property CreationTime

ForEach ($sourcefile In $(Get-ChildItem $source | Where-Object { $_.Name -match "Daily_Reviews\[\d{1,12}-\d{1,12}\].journal" }))
{
    #### Process files in order from oldest to newest
    $file = $source+$sourcefile
 }

Вы просто передаете несортированный массив в Sort-Object и просматриваете результат следующим образом:

(переходы курсора и разрывы строк включены для удобства чтения)

ForEach ($sourcefile In $(Get-ChildItem $source ^
           | Where-Object { $_.Name -match "Daily_Reviews\[\d{1,12}-\d{1,12}\].journal" } ^
           | Sort-Object -Property CreationTime))
{
    #### Process files in order from oldest to newest
    # Do-Whatever -With $sourcefile
}

Обратите внимание, что первая строка с Get-ChildItem call в вашем коде ничего не делает, кроме отображения отсортированного списка файлов **. journal * - этот вывод больше не обрабатывается в вашем скрипте.