如何获取命令输出并填充数组?

时间:2013-12-11 19:19:50

标签: powershell

我有类似以下的非工作代码:

$list = Get-VM | format-table VMElementName -HideTableHeaders | out-string
$array=@($list)

Write-Host $array[1]

我最终得到的是$ array [0],其中包含数据列表,$ array [1]或更高版本中没有值。

String1
String2
String3

解析此列表以填充数组的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

最简单的方法是使用Select -ExpandProperty选择所需的属性:

$array = Get-VM | select -ExpandProperty VMElementName 

如果您正在运行V3或更高版本,则可将其缩短为:

$array = (Get-VM).VMElementName 

答案 1 :(得分:0)

您不需要额外的转换逻辑。请给我们以下

$array = ( Get-VM | format-table VMElementName -HideTableHeaders )

Write-Host $array[0]