我需要按照从最早创建日期到最新的顺序处理文件。
我找到了我需要的 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* 文件的排序列表 - 此输出不会在脚本中进一步处理。