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 次 |
最近记录: |