PowerShell-将 Sort-Object 合并到管道命令列表

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
 }

答案1

您只需将未排序的数组通过管道传输到 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什么也不做,只是显示 **.journal* 文件的排序列表 - 此输出不会在脚本中进一步处理。

相关内容