PowerShell - Combinando Sort-Object à lista de comandos canalizados

2

Eu preciso processar os arquivos na ordem da data de criação mais antiga para a mais recente.

Eu encontrei o comando sort-object que é o que eu preciso, mas eu não tenho idéia de como adicioná-lo à minha instrução ForEach ().

Alguém pode me mostrar como fazer isso?

Obrigado

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
 }
    
por Slinky 12.04.2013 / 04:23

1 resposta

4

Você simplesmente canaliza a matriz não classificada para Sort-Object e percorre o resultado da seguinte forma:

(o cursor escapa e quebra de linha incluído para legibilidade)

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
}

Observe que a primeira linha com a chamada Get-ChildItem em seu código não exibe mais do que uma lista classificada de arquivos **. journal * - essa saída não é mais processada em seu script.

    
por 12.04.2013 / 06:03