Powershell: showing value only instead of @{} in result

核能气质少年 提交于 2020-01-06 06:25:13

问题


I'm new to PWSH, it may looks easy for you guys but I can't find the way to show the result as expected.

$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)}}

Now, as example, when requesting the result of $vmMemUsageAvg I receive this output:

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

but I want only want as output the value, like: 5.9

putting that in Excel cell with

$Sheet.Cells.Item($intRow, 13) = [String]$vmMemUsageAvg 

gives me a string like this:

@{Mem.Usage.Average=5.9}

Any help welcome to have this value ONLY displayed


回答1:


By using Select-Object @{N="Mem.Usage.Average";E={...}} you are making an object with a property Mem.Usage.Average, but it looks just want a string. So just take out the 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)


来源:https://stackoverflow.com/questions/46184120/powershell-showing-value-only-instead-of-in-result

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!