目前,打印Get-Process
对象会产生
PS > $p = Get-Process procexp
PS > $p
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
293 10 10660 8060 122 163.19 196 procexp
我想要打印一个包含Datetime
值的干净表。
有很多方法可以做到这一点。我试图通过向$p
添加属性来实现此目的。我想要它看起来像(请注意右侧的新列):
PS > $p = Get-Process procexp
PS > $d = Get-Date
PS > $p | Add-Member -MemberType NoteProperty -Name DateTime -Value $d.DateTime
PS > $p
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName Datetime
------- ------ ----- ----- ----- ------ -- ----------- --------
293 10 10660 8060 122 163.19 196 procexp Friday February 20, 2015 00:20:00
不幸的是,列DateTime
无法打印。调用Add-Member
对$p
打印到stdout的内容没有影响。
有没有人知道如何添加一个对象成员,以便它自动打印在这样的表中?
答案 0 :(得分:0)
$ p |选择名称,句柄,NPM,@ {Label ='Date';表达式= {Get-date}} 你可以添加| ft -AutoSize最后有一个好看的表,而且你必须添加你想要显示的所有属性。
查看get-process的值是如何形成的,有关基于数据类型格式化数据的所有信息都可以在以下位置找到:C:\ Windows \ System32 \ WindowsPowerShell \ v1.0 \ DotNetTypes.format.ps1xml
你可以在Select或Format-XXX comandlets中玩哈希表,在这种特殊情况下,我已经为PS中的每一行添加了当前日期示例:@ {Label ='VM';表达式= {$ _.VM / 1Mb}} Select中的此表达式将以MegaBytes显示VM。
干杯 /安东