Windows Powershell对象转换成文本

2019-09-30 13:59:49于海丽

修改列标题

使用合成的属性,如果使用脚本块作为标题,看着很不爽。可以使用Lable设置。同样是上面的例子,稍作修改。

PS C:Powershell> $column = @{Expression={ [int]($_.Length/1KB) }; Label="KB" }
PS C:Powershell> Dir | Format-Table Name, $column

Name                    KB
----            ----------------------
function.ps1                21
LogoTestConfig.xml           0
ls.html                     3
name.html

优化列宽度

因为Powershell的绝大多数输出都是实时的流模式,所以下一条结果的宽度未知,Powershell的结果会默认采用分散对齐,这样可以最大限度利用控制台的宽度,但是可以通过-auto参数对列的宽带进行优化,会将属性值的最大宽带作为每一列的宽度,对比一下吧:

PS C:Powershell> ls

  目录: C:Powershell

Mode        LastWriteTime   Length Name
----        -------------   ------ ----
d----    2011/11/23   17:25      ABC
d----    2011/11/29   18:21      myscript
-a---    2011/11/24   18:30   67580 a.html
-a---    2011/11/24   20:04   26384 a.txt
PS C:Powershell> ls | Format-Table -AutoSize

  目录: C:Powershell

Mode     LastWriteTime Length Name
----     ------------- ------ ----
d---- 2011/11/23   17:25    ABC
d---- 2011/11/29   18:21    myscript
-a--- 2011/11/24   18:30 67580 a.html