Powershell:仅在结果中显示值而不是@ {}

时间:2017-09-12 19:36:50

标签: powershell output display

我是PWSH的新手,对你们来说看起来很容易,但我找不到按预期显示结果的方法。

$vm2 = Get-VM VM1234
$vmMemUsageAvg = get-VM $vm2.Name | Select @{N="Mem.Usage.Average";E={[Math]::Round((($_ |Get-Stat -Stat mem.usage.average -Start (Get-Date).AddHours(-24)-IntervalMins 5 -MaxSamples (12) |Measure-Object Value -Average).Average),2)}}

现在,例如,在请求结果$vmMemUsageAvg时,我收到此输出:

C:\Windows\system32> $vmMemUsageAvg 
Mem.Usage.Average
-----------------
              5.9

但我想只想输出值,例如: 5.9

使用

将其放入Excel单元格中
$Sheet.Cells.Item($intRow, 13) = [String]$vmMemUsageAvg 

给了我一个这样的字符串:

@{Mem.Usage.Average=5.9}

欢迎任何帮助,只显示此值

1 个答案:

答案 0 :(得分:1)

通过使用Select-Object @{N="Mem.Usage.Average";E={...}},您正在创建一个具有属性Mem.Usage.Average的对象,但它看起来只是想要一个字符串。所以只需取出Select

即可
$vm2 = Get-VM VM1234
$vmMemUsageAvg = [Math]::Round(((get-VM $vm2.Name | Get-Stat -Stat mem.usage.average -Start (Get-Date).AddHours(-24)-IntervalMins 5 -MaxSamples (12) | Measure-Object Value -Average).Average),2)