【发布时间】:2017-09-12 19:36:50
【问题描述】:
我是 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}
任何帮助欢迎仅显示此值
【问题讨论】:
-
用 $Sheet.Cells.Item($intRow, 13) = [String]$vmMemUsageAvg 把它放在 Excel 单元格中给我一个这样的字符串:@{Mem.Usage.Average=5.9}
-
您创建了一个对象,该对象具有名为“Mem.Usage.Average”的属性,该属性的值为 5.9。要仅查看该财产的价值,您必须仅要求该财产。
$vmMemUsageAvg."Mem.Usage.Average"。是的,将 5.9 包装在一个对象的属性中,然后立即解开它有点傻。 -
是的!我试过 $vmMemUsageAvg.Mem.Usage.Average 但没有成功。报价使它起作用。谢谢!
-
@VinceD 这就是为什么您不应该在属性名称中包含
.的原因。如果没有引用它,它会在 Mem 属性中查找 Usage 属性,然后再查找 Averaged 属性。这令人困惑
标签: powershell output display