• PowerShell 笔记 输出格式化


    格式化用于覆盖默认值并为命令创建自定义的输出格式

    默认格式

    powershell的格式定义在.format.ps1xml文件中, 在powershell的安装目录下面

    > cd $PSHOME
    > get-process | gm # 查询process的类型为 System.Diagnostics.Process, 在DotNetTypes.format.ps1xml 文件中查找它, 其中定义了对象的输出格式
    

    第一个规则是系统会检查对象类型是否已经被预定义视图处理过。也就是我们在“DotNetType.format.ps1xml ”中所见到的:一个针对-process 对象的预定义视图。PowerShell中还预装了其他的“.format.ps1xml ”文件,这些文件在Shell启动时会被自动加载

    第二个格式化规则:格式化系统会查找是否有人为该对象类型预定义默认显示属性集。这些可以在另外一个配置文件“Types.ps1xml”中找到

    格式化第三个规则—用于确定输出样式。如果格式化系统显示4个或以下的属性,输出结果会以表格形式展现。如果有5个或以上的属性,输出结果会使用列表形式

    格式化表格

    Format-Table 常用属性

    • autosize 强制结果集仅保存足够的列空间,使得表格更加紧凑,但是会使得Shell花费额外时间生成输出结果
    • property 接收一个逗号分隔符列表,该列表包含期望显示的属性值
    • groupby 每当指定的属性值发生变化时,生成一个新的列头集合
    • wrap 如果Shell需要把列的信息截断,会在列尾带上省略号(… )以便标识信息被截断

    格式化列表

    把对象输出格式转化为列表

    Get-Process | Format-List
    

    格式化宽列表

    仅仅展示一个属性的值, 默认会查找对象的name属性, col指定输出列数

    Get-Process | Format-Wide name -col 9
    

    自定义列与列表头目

    > Get-Service | Format-Table @{name='ServiceName';expression={$_.Name}},Status,DisplayName
    
    ServiceName                                 Status DisplayName
    -----------                                 ------ -----------
    AarSvc_98c709f                             Stopped Agent Activation Runtime_98c709f
    AJRouter                                   Stopped AllJoyn Router Service
    ALG                                        Stopped Application Layer Gateway Service
    AntiCheatExpert Service                    Stopped AntiCheatExpert Service
    AppIDSvc                                   Stopped Application Identity
    ...
    
    > Get-Process | Sort-Object VM -Descending | Format-Table @{l='ServiceName';e={$_.Name}},@{l='VM(MB)';e={$_.VM / 1MB}}
    

    windows 还提供了另一种输出结果Out-GridView. OutGridView绕过了格式化子系统,并且不接受Format-xxx的输出

  • 相关阅读:
    Linux下leveldb安装及PHP扩展
    C语言中的预处理程序之#include
    C#设计模式——组合模式(Composite Pattern)
    C#设计模式——桥接模式(Bridge Pattern)
    C#设计模式——备忘录模式(Memento Pattern)
    C#设计模式——外观模式(Facade Pattern)
    C#设计模式——观察者模式(Observer Pattern)
    C#设计模式——原型模式(Prototype Pattern)
    C#设计模式——中介者模式(Mediator Pattern)
    C#设计模式——享元模式(Flyweight Pattern)
  • 原文地址:https://www.cnblogs.com/Chinori/p/16300401.html
Copyright © 2020-2023  润新知