Cap*_*nch 2 sorting powershell date chronological
我有一个文件夹,里面有一个子文件夹/文件列表
使用Powershell
这是我到目前为止所能得到的:
Get-ChildItem "C:\code\Test" -Filter "2022*" | Sort-Object Name -Descending
Run Code Online (Sandbox Code Playgroud)
您可以使用fromTryParseExact方法DateTime来解析文件夹名称并避免任何类型的错误,这可以与Sort-Object和结合使用Select-Object以获得第二个最新的。我已添加-Directory到仅输出文件夹。还将您的过滤器更改为,-Filter "2022????"以确保您匹配以 4 个字符开头2022且后跟 4 个字符的文件夹。
$ref = [ref] [datetime]::new(0)
Get-ChildItem "C:\code\Test" -Filter "2022????" -Directory | Sort-Object {
$result = [datetime]::TryParseExact(
$_.Name,
'yyyyMMdd',
[cultureinfo]::InvariantCulture,
[Globalization.DateTimeStyles]::AssumeLocal,
$ref
)
if($result) { $ref.Value }
} -Descending | Select-Object -Index 1
Run Code Online (Sandbox Code Playgroud)
如果您想确保将文件夹与日期格式匹配(因为-Filter可能过于宽松),您可以Where-Object通过正则表达式通过管道进行额外过滤:
$ref = [ref] [datetime]::new(0)
Get-ChildItem "C:\code\Test" -Filter "2022????" -Directory |
Where-Object Name -Match '^2022\d{4}$' | Sort-Object {
# rest of the code here
} -Descending | Select-Object -Index 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
103 次 |
| 最近记录: |