当前位置: 首页 > news >正文

东营优化网站中国石油大学网页设计与网站建设

东营优化网站,中国石油大学网页设计与网站建设,珠海做公司网站的,建设工程合同法文章目录PowerShell 格式化系统完全掌握(下):自定义列/格式字符串/对齐与宽度 实战模板1. 计算列(Calculated Property):自定义任何一列1.1 示例:显示 VM(MB)并保留两位…

文章目录

  • PowerShell 格式化系统完全掌握(下):自定义列/格式字符串/对齐与宽度 + 实战模板
    • 1. 计算列(Calculated Property):自定义任何一列
      • 1.1 示例:显示 VM(MB)并保留两位小数、右对齐
      • 1.2 示例:自定义列头并复合表达式
    • 2. 列宽与对齐(只对 `Format-Table`)
    • 3. 分组与换行:`-GroupBy`、`-Wrap`
    • 4. Format right 的“报表模板”
      • 4.1 屏幕友好模板(表格)
      • 4.2 导出纯文本表格(文件)
      • 4.3 导出 HTML 报表(注意不要提前 `Format-*`)
      • 4.4 GridView 交互(Win 环境)
    • 5. 常见故障排查清单(实战非常好用)
    • 6. 进阶:`FormatString` 玩转数字/日期
    • 7. 10 题自测(带参考答案)
    • 8. 实用场景模板合集(拿去即用)
      • 8.1 进程资源 Top 报表(屏幕版)
      • 8.2 服务健康快照(HTML 版)
      • 8.3 目录清单(宽列表)
    • 9. 一页纸总结(收藏级)

PowerShell 格式化系统完全掌握(下):自定义列/格式字符串/对齐与宽度 + 实战模板

本篇定位:在上篇“原理与基础用法”的基础上,带你玩转计算列、格式字符串、对齐/宽度、分组与换行,并给出可直接复用的报表与导出模板。


1. 计算列(Calculated Property):自定义任何一列

语法(Format-Table / Format-List 通用):

@{Name = '列头显示名'   # 别名:N、Label、LExpression = { 脚本块 } # 别名:E# 还可加:FormatString / Width / Alignment(仅 Format-Table 接收)
}

1.1 示例:显示 VM(MB)并保留两位小数、右对齐

Get-Process |Format-Table Name,@{n='VM (MB)'; e={$_.VM/1MB}; FormatString='F2'; Alignment='Right'} -AutoSize

1.2 示例:自定义列头并复合表达式

Get-Service |Format-Table @{n='ServiceName';e={$_.Name}}, Status, DisplayName -AutoSize

小技巧:/1MB/1GB 这类写法简单直观,常用于把字节转换为人类可读单位。


2. 列宽与对齐(只对 Format-Table

Get-Process |Format-Table @{n='Name'; e={$_.Name}; Width=30; Alignment='Left'},@{n='Id';   e={$_.Id};   Width=8;  Alignment='Right'} -AutoSize

注:-AutoSize 会基于数据动态计算宽度;你也可以同时指定固定宽度覆盖默认。导出到文件时记得 Out-File -Width 200,避免换行难看。


3. 分组与换行:-GroupBy-Wrap

  • -GroupBy <Prop>:按属性分组(记得先 Sort-Object 保证分组有序)。
  • -Wrap:长文本换行显示(例如 DisplayName 很长时)。
Get-Service |Sort-Object Status, Name |Format-Table -GroupBy Status Name, Status, DisplayName -Wrap -AutoSize

4. Format right 的“报表模板”

4.1 屏幕友好模板(表格)

# 屏幕展示:紧凑 + 可读
Get-Process |Select-Object Name, Id, VM, WorkingSet |Sort-Object VM -Descending |Format-Table @{n='Name';e={$_.Name};Width=28},@{n='Id';e={$_.Id};Width=6;Alignment='Right'},@{n='VM(MB)';e={$_.VM/1MB};FormatString='F1';Alignment='Right'},@{n='WS(MB)';e={$_.WorkingSet/1MB};FormatString='F1';Alignment='Right'} -AutoSize

4.2 导出纯文本表格(文件)

Get-EventLog -List |Select-Object LogDisplayName, MinimumRetentionDays |Sort-Object LogDisplayName |Format-Table @{n='LogName';e={$_.LogDisplayName};Width=40},@{n='RetDays';e={$_.MinimumRetentionDays};Alignment='Right'} |Out-File .\EventLogs.txt -Width 200

4.3 导出 HTML 报表(注意不要提前 Format-*

Get-Service |Select-Object Name, DisplayName, Status |Sort-Object Status, Name |ConvertTo-Html -Title 'Service Report' -PreContent "<h2>Service Report</h2>" |Out-File .\ServiceReport.html

记住:ConvertTo-Html 要吃“对象”,不是“格式化指令”。所以不要把 Format-Table 放在它前面。

4.4 GridView 交互(Win 环境)

Get-Process |Select-Object Name, Id, CPU, VM, WS |Out-GridView -Title 'Process Explorer'

5. 常见故障排查清单(实战非常好用)

  1. 导出 HTML/CSV 内容怪异?

    • 检查是否在 ConvertTo-Html/Export-Csv 之前用了 Format-*
    • 正解:先选择属性(Select-Object),再导出
  2. Out-GridView 无法显示?

    • 检查是否喂了 Format-* 之后的内容。
    • 正解:直接把对象传给 Out-GridView
  3. 表格对齐/换行丑?

    • -AutoSize-Wrap、自定义 Width/Alignment 组合使用。
    • 导文件加 Out-File -Width N
  4. 混入了多种对象类型导致格式混乱?

    • 拆开执行或统一投射成相同结构(Select-Object 统一属性集合)。
  5. 列头不是属性名(例如 PM (K))看不懂?

    • Get-Member 查真实属性;列头只是显示名

6. 进阶:FormatString 玩转数字/日期

FormatString 支持 .NET 标准/自定义格式:

Get-Process |Format-Table Name,@{n='CPU(s)'; e={$_.CPU};     FormatString='F2'; Alignment='Right'},@{n='StartTime'; e={$_.StartTime}; FormatString='yyyy-MM-dd HH:mm'} -AutoSize

小贴士:有些属性(如 StartTime)可能需要管理员权限或存在空值,注意容错:e={ $_.StartTime -as [datetime] }


7. 10 题自测(带参考答案)

1)“Format 命令应该放在管道哪里?”

最右侧(或仅在 Out-File/Out-Printer 之前)。

2)Out-GridView 能否接 Format-Table 的输出?

不能。它只接受原始对象

3)为什么 Get-Process 会显示那几列?

有预定义视图(.format.ps1xml)决定了默认列与列头。

4)没有预定义视图时怎么决定显示哪些列?

Types.ps1xmlDefaultDisplayPropertySet,没有就考虑所有属性。

5)什么时候显示表格,什么时候显示列表?

≤4 列用表格;≥5 列用列表(为了可读性)。

6)如何把字节转换成人类可读单位?

/1KB/1MB/1GB 等。

7)如何按状态分组显示服务?

Sort-Object Status + Format-Table -GroupBy Status

8)导出到文件时表格被换行了怎么办?

Out-File -Width 200(或更大)。

9)为何 PM (K) 找不到对应属性?

这是列头显示名,真实属性请用 Get-Member 查看(如 PM)。

10)如何创建“保留两位小数并右对齐”的计算列?

@{n='X'; e={...}; FormatString='F2'; Alignment='Right'}


8. 实用场景模板合集(拿去即用)

8.1 进程资源 Top 报表(屏幕版)

Get-Process |Select-Object Name, Id, CPU, VM, WS |Sort-Object CPU -Descending |Format-Table @{n='Name';e={$_.Name};Width=25},@{n='Id';e={$_.Id};Width=6;Alignment='Right'},@{n='CPU(s)';e={$_.CPU};FormatString='F2';Alignment='Right'},@{n='VM(MB)';e={$_.VM/1MB};FormatString='F1';Alignment='Right'},@{n='WS(MB)';e={$_.WS/1MB};FormatString='F1';Alignment='Right'} -AutoSize

8.2 服务健康快照(HTML 版)

$services = Get-Service |Select-Object Name, DisplayName, Status |Sort-Object Status, Name$services |ConvertTo-Html -Title 'Service Health' `-PreContent "<h2>Service Health Snapshot</h2><p>$(Get-Date)</p>" |Out-File .\ServiceHealth.html

8.3 目录清单(宽列表)

Get-ChildItem C:\Projects -Directory | Format-Wide Name -Column 3

9. 一页纸总结(收藏级)

  • 机制:对象 → Out-Default → Out-Host → 格式化系统(视图/默认属性)→ 指令 → 渲染
  • 三板斧Format-Table(表格)、Format-List(多属性/看值)、Format-Wide(宽列表)
  • 两大坑Format right一次只喂一种对象类型
  • 与 Out*:Out-File/Out-Printer 接格式化指令;Out-GridView 只能接对象
  • 计算列@{n='列'; e={...}; FormatString='F2'; Alignment='Right'; Width=30}
  • 导出:文件加 -Width;HTML/CSV 前不要 Format-*

到这你已经把“格式化系统”的原理 + 用法 + 实战全部拿下了。
以后看到“输出不好看/导出乱/GridView 不显示”的问题,就按本文清单逐一排查,十拿九稳。

http://www.dtcms.com/a/419510.html

相关文章:

  • 机器视觉:基于MTCNN与Caffe模型的人脸性别年龄统计系统实现
  • 手机网站开发升上去专门做消防器材的网站
  • Docker进程中的守护进程原理解析
  • ApplicationContext接口实现(四)
  • PyQt python 异步任务,多线程,进阶版
  • 磁盘物理坏块与逻辑坏块的区别
  • net asp网站开发长春哪有做网站公司
  • 【机器学习】监督学习 —— 决策树(Decision Tree)
  • (基于江协科技)51单片机入门:5.定时器
  • 怎么制作个人门户网站东莞常平中转场
  • 强化学习原理(四)
  • 做网站 毕业设计长沙企业网页设计哪家专业
  • 菊风可视化回溯解决方案,为金融业务合规打造全流程“可回溯”能力
  • 蜜度AI审校从技术到服务全面突破 为出版内容校对注入新活力
  • 单一索引,覆盖索引,联合索引
  • BentoML推出llm-optimizer开源框架:让LLM性能调优变简单?
  • Cherry Studio实战使用
  • Python 类型提示:Literal 类型
  • 仿造别人的网站侵权吗做网站被抓
  • 做中文网站的公司海安网站设计公司
  • 浏览器获取到网页的流程
  • 解析网站怎么做wordpress 小程序 插件
  • SQL 性能优化:为什么少用函数在 WHERE 条件中?
  • 迁西网站开发上海网络技术有限公司
  • 如何利用服务器做网站沈阳建设工程信息网中项网
  • 推广网站的方法有哪些建设网站账务处理
  • [Windows] 3D软件 Blender 5.0 alpha版
  • 计算机视觉(opencv)——基于 dlib 轮廓绘制
  • 帕累托概念Pareto
  • 海外云服务器压力测试,如何评估服务器性能与稳定性