在尝试扩展单个属性并对其进行格式化时,管道流程会压缩代码

时间:2017-10-09 13:35:28

标签: powershell

这是我拥有的和我想做的事情:

$SystemSize = Get-WmiObject Win32_LogicalDisk | Select-Object Size -ExpandProperty Size
$SystemSize = "{0:N1}" -f ($beforeSystemSize / 1GB) + " GB"

这给了我想要的GB输出,格式化我想要的方式。但是如何将表达式添加到第一行?我试过通过几种方式来管它,但我想我只是不理解它。我不想把它放到一张桌子里吐出来,我需要变量中的数据和我见过的大多数其他代码只是在一张大桌子里吐出来的。例如:

$SystemSize = Get-WmiObject Win32_LogicalDisk |
              Where-Object { $_.DriveType -eq "3" } |
              Select-Object SystemName, 
                  @{Name="Drive";Expression={($_.DeviceID)}},
                  @{Name="Size (GB)";Expression={"{0:N1}" -f ($_.Size / 1gb)}},
                  @{Name="FreeSpace (GB)";Expression={"{0:N1}" -f ($_.Freespace / 1gb)}},
                  @{Name="PercentFree";Expression={"{0:P1}" -f ($_.FreeSpace / $_.Size)}} |
              Format-Table -AutoSize |
              Out-String

作为附录,我不完全理解上述原因。很想得到解释。它是一个很好的表,但我迷失在@{Name=...}部分,它是使用Key:Value在属性上进行Select吗?

0 个答案:

没有答案