PowerShell排序时如何将LastUsed空值/$null排在最前优先获取
PowerShell 自定义排序实现空值优先置顶方案
修改后完整命令
$Oldest = $Results | Where-Object { $_.Type -eq 'Main' } | Sort-Object @{Expression={ [string]::IsNullOrWhiteSpace($_.LastUsed) -eq $false }; Ascending=$true}, LastUsed | Select-Object -First 10
逻辑说明
- 采用双优先级排序实现需求:
- 第一排序键为自定义表达式,会将所有
LastUsed为$null、空字符串、空白内容的记录标记为更低的排序值,升序排列时会全部置顶 - 第二排序键沿用原有规则,对非空的
LastUsed字段按升序排列,保证更早的日期排在前面
- 第一排序键为自定义表达式,会将所有
如果你确认
LastUsed是日期类型,仅存在$null不存在空白字符串的场景,可以简化排序表达式:Sort-Object @{Expression={ $_.LastUsed -ne $null }; Ascending=$true}, LastUsed
内容的提问来源于stack exchange,提问作者dcaz
相关产品推荐
相关产品推荐

