Format-List(fl)用于以垂直列表显示对象属性,支持全量/指定属性、通配符及与Select-Object联用;但输出为格式化对象,不可再管道处理,需先筛选后格式化。
format-list(简写为 fl)是 powershell 中用于以垂直列表形式显示对象属性的命令,适合查看对象的全部或指定属性,尤其在调试、排查或需要完整字段信息时非常实用。
基本用法:显示所有属性
直接对任意对象管道使用 Format-List,它会尝试列出该对象所有可枚举的属性(包括隐藏属性,但不包括方法):
Get-Process -Name pwsh | Format-List
这会逐行显示进程对象的每个属性(如 Name、Id、CPU、WorkingSet、StartTime 等),每行一个属性名和值,比默认表格视图更详细。
只显示指定属性
用属性名作为参数,可筛选并仅展示关心的字段,提升可读性:
Get-Service bits | Format-List Name, Status, StartType, DisplayName
支持通配符,比如想看所有以 Path 开头的属性:
Get-Process -Id $PID | Format-List Path*
配合 Select-Object 先筛选再格式化
Format-List 是格式化命令,**不能改变对象本身**,也不影响后续管道。若需先计算新属性或重命名,应先用 Select-Object:
- 添加自定义属性:
Get-Date | Select-Object DateTime, @{Name='DayOfYear';Expression={$_.DayOfYear}} | Format-List - 重命名属性:
Get-ChildItem . | Select-Object @{Name='FileName';Expression={$_.Name}}, Length | Format-List
注意事项与常见问题
Format-List 输出的是格式化后的显示对象(FormatEntryData 等),**不是原始对象**,因此不能继续用 Where-Object 或 ForEach-Object 处理其结果。如果误写成:
Get-Process | Format-List | Where-Object {$_.CPU -gt 100}
会失败——因为 Format-List 后已无 CPU 属性。正确做法是先筛选、再格式化:
Get-Process | Where-Object CPU -gt 100 | Format-List Name, Id, CPU
另外,对大量对象使用 Format-List 会导致输出冗长,建议加 -First 5 限制数量,例如:Get-EventLog -LogName System -Newest 10 | Format-List -Property EventID, EntryType, Message -First 3


















