PowerShell格式化_下
在PowerShell中有四种格式化的 Cmdlets。
Format-Table(格式化表格)
The Format-Table cmdlet formats the output of a command as a table with the selected properties of the object in each column.
Format-List(格式化列表)
The Format-List cmdlet formats the output of a command as a list of properties in which each property is displayed on a separate line.
把数据⽔平的展现到⼀个表中。
Format-List(格式化列表)
The Format-Wide cmdlet formats objects as a wide table that displays only one property of each object.
⽤于展⽰⼀个宽列表,它仅展⽰要给单独属性的值,所以它的-property参数仅接受⼀个属性名,⽽不是列表,并且不接受通配符。
Get-Process | Format-Wide name -col 6
col参数的作⽤是让结果以多少列的形式显⽰出来。
定制列和列表记录
在这⼀节中,我们将展⽰如何使⽤哈希表结构来添加对象⾃定义属性。
我们甚⾄可以使⽤更复杂的数学表达式来代替:
Get-Process |
>> Format-Table Name,
>> @{l='VM(MB)';exp={$_.VM/1MB -AS [int]}} -AutoSize
输出到⽂件,打印机或者主机
⼀旦对象被格式化,你必须决定结果的去向。
如果以“Format-cmdlet” 结束,格式化指令将按照“Format-Cmdlet” 的“Out-Default” 创建,也就是以“Out-Host“显⽰结果到显⽰屏。
另外⼀个输出:⽹格
”Out-GridView“提供了另⼀种有⽤的输出功能。不过这并不是技术上的格式化,其实”Out-GridView“完全绕过了格式化⼦系统。它不需要调⽤”Format-“ cmdlets, 不产⽣格式化指令,没有⽂本结果输出到控制台窗⼝,”Out-GridView“⽐接受format-cmdlet 的输出,仅接收其他cmdlets输出的对象。
常见误区:
切记:format right。 你的format-cmdlets 应该是out-file 或者out-printer 作仅有表达式时的民⼯的最后⼀个命令。
因为format-cmdlets 产⽣格式化指令,仅有 out-cmdlet 能够合理的处理这些指令,如果⼀个format- cmdlet 作为命令⾏的结尾,指令将使⽤”out-default“ (总为管道的结尾)即指向out-host ,这将致⾮预期的结果。
⼀次⼀个对象
格式化系统先在管道中查第⼀个对象,然后使⽤定义的格式处理这个对象,如果管道包含两个或以上的对象,那么结果可能不是你想要的那样。
⽐如:get-process;get-service
分号允许我们把两个命令合并在⼀个命令中,⽽不是把第⼀个命令的输出以管道形式传递给第⼆个命令。这意味着两个命令时单独运⾏的,但是会把他们的输出传到相同的管道中。
运⾏上述命令会发现第⼀个命令的输出是正常的,⽽第⼆个命令的输出结果却不是预期的(以列表的形式显⽰)。
看来PowerShell系统并不⽤于把多个对象和结果按照我们所期望的形式进⾏合并。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论