在管道属性上进行数学运算

时间:2018-05-02 14:29:24

标签: powershell math

在属性上做数学很新... 我正在尝试:

Get-WMIObject win32_diskdrive -computer $poste | Add-Member -MemberType ScriptProperty -Name  GB -Value {[int]($_.size/1GB)} -PassThru |  select model, size,GB

并且我认为我错误地引用了SIZE属性,因为我得到了:

model                                            size GB
-----                                            ---- --
Corsair Neutron XTI SSD SCSI Disk Device 480101368320  0
ST350041 3AS SCSI Disk Device            500105249280  0

我做错了什么?谢谢

3 个答案:

答案 0 :(得分:3)


这个表达式有点简单:

Get-WMIObject win32_diskdrive | select model, size,@{n="GB";e={[int]($_.size/1GB)}} 

它也可以。

答案 1 :(得分:2)

您可以在select语句中使用Expression来计算以GB为单位的大小。

<强>实施例

Get-WMIObject win32_diskdrive -computer $poste  | Select  @{Label = "Model";Expression = {$_.Model}},
        @{Label = "Size";Expression = {"{0:N1}" -f($_.Size) }},
        @{Label = "Total Capacity (GB)";Expression = {"{0:N1}" -f( $_.Size / 1gb)}} #This will devide size by 1gb

答案 2 :(得分:1)

将其作为明确的ForEach-Object:

Get-WMIObject win32_diskdrive  | %{Add-Member -Input $_ -MemberType ScriptProperty -Name  GB -Value {[int]($_.size/1GB)} -PassThru} |  select model, size,GB