Format-List 是什么
Format-List 把对象的属性纵向逐行列出,一条属性占一行。属性多、值很长(比如事件消息、错误记录、进程路径)时,横向表格会被挤成省略号,而竖排能完整显示。它是排查单个对象的首选显示方式,但输出的是格式化对象,之后不能再参与计算或比较。
基本信息
| 适用平台 | Windows PowerShell 5.1 与 PowerShell 7 通用 |
|---|---|
| 语法 | <对象> | Format-List [-Property] <属性列表>;别名 fl |
| 关键参数 | -Property * 展开全部属性;-Force 显示隐藏属性 |
| 输出限制 | 格式化结果不能再管道给 Select/Sort/Where 计算 |
| 相关命令 | Format-Table 横向表格、Format-Wide 只有名称一列 |
典型使用场景
- 查单个进程或服务的完整属性,确认路径、启动账户、依赖
- 展开 $Error[0] 与 ErrorRecord 细节做错误取证
- 看证书、磁盘、网卡对象里有哪些字段可用,再决定 Select 哪些
- 把一条对象的所有信息落成文本附件给同事复现问题
- 排查 Get-* 命令返回空值时,确认属性名是否写错
常用示例
常用示例
Get-Process -Id 4 | Format-List * # 展开进程全部属性
$Error[0] | Format-List * -Force # 含隐藏字段的错误记录
Get-Service Spooler | fl Name, Status, StartType # 只列关心的字段
Get-Process -Id 4 | fl * -Property * | Out-File D:\p.txt # 落盘留证
(Get-CimInstance Win32_LogicalDisk -Filter "DeviceID='C:'") | fl * # 查看 C 盘全部属性
Get-ChildItem D:\x -File | Get-Member -MemberType Property # 先看有哪些属性可列输出逐列读法
| 显示内容 | 含义 | 排查提示 |
|---|---|---|
| 属性名 : 值 | 每行一个属性 | 值很长会自动换行,看起来像多行但属同一字段 |
| 空行分隔 | 对象之间的分界 | 竖排多条对象时靠空行区分 |
| 未显示字段 | 默认视图不含该属性 | 加 -Force 或显式 -Property 名即可 |
| 省略号 | 列宽或行宽不够 | 竖排格式基本不会截断,横排才需要换 fl |
显示与计算要分先后:先 Select-Object 挑字段、Sort/Where 算好,最后才交给 Format-List 显示;把 Format-List 放在管道前段,后面的 Select-Object 会拿不到属性。
找“这个对象到底有哪些属性”时,fl * 比猜属性名高效;配合 Get-Member -MemberType Property 能看到属性类型,判断该用 -eq 还是 -like 比较。