【发布时间】:2017-05-11 21:24:25
【问题描述】:
我创建了这个函数来解析特定文本的字段并返回一个自定义对象。
如果我使用语法Get-MachineUser -VMArray $PassedArray,一切正常,但如果我通过管道传递数组$PassedArray | Get-MachinesUser,则一切正常。
我与团队中的某个人一起工作,我们发现当我们传递数组时,它只处理数组中的最后一个条目。我不介意使用其他语法,但我很好奇我有什么错误导致管道无法工作。
function Get-MachinesUser{
param (
[parameter(Mandatory=$true, ValueFromPipeline=$true)]
[System.Object[]] $VMArray
)
foreach($vm in $VMArray){
if($VM.Description -match '.*(ut[A-Za-z0-9]{5}).*'){
[PSCustomObject]@{
"Name" = $vm.Name
"User" = $Matches[1]
}
}
}
}
【问题讨论】:
-
$PassedArray 是什么对象类型,其中包含哪些对象类型(字符串、对象集合、其他)?
-
这是一个字符串数组。
标签: powershell piping