这很新,所以请原谅我,
我的任务是创建一个自定义对象,将其称为$custOBJ
。$custOBJ.name
应该是一个字符串,$custOBJ.numbers
应该是数字数组:
$custOBJ = New-Object PSObject
$custOBJ | Add-Member -type NoteProperty -name "Name" -Value "muzi"
$numbers = @(1,11,22)
$custOBJ | Add-Member -type NoteProperty -name "Numbers" -Value $numbers
到目前为止,到目前为止,我需要创建100个这些对象(每个对象具有不同的值),然后需要在数组上创建以将所有对象保持在一起,因此最后我应该拥有$custOBJ1
,$custOBJ2
...等等,还有一个数组$array = @($custOBJ1, custOBJ2 ...)
我试图用这样的for循环来做到这一点:for ($i = 0; $i -lt 10; $i++) {
$custOBJ[$i] = New-Object PSObject
$custOBJ[$i] | Add-Member -type NoteProperty -name "test$i" -Value "testik$i"
$numbers = @('1$i')
$custOBJ[$i] | Add-Member -type NoteProperty -name "Numbers" -Value $numbers
}
我遇到错误,显然这不是正确的方法,有人可以帮忙吗? 最佳答案
您正在尝试做什么:$custOBJ[$i] =
尝试将某些内容存储在对象(数组)$i
的元素编号$custOBJ
中。但是,我们还没有一个名为$custOBJ
的可数对象,而使用[Number]
您只能到达该对象已经存在的位置(数组需要10个元素才能更改第10个元素)。
相反,您可以通过收集for(每个)返回的所有内容来创建数组:
$array = for ($i=0; $i -lt 10; $i++){ # collect the output of the for in $array
$custOBJ = New-Object PSObject
$custOBJ | Add-Member -type NoteProperty -name "test$i" -Value "testik$i"
$numbers = @('1$i')
$custOBJ | Add-Member -type NoteProperty -name "Numbers" -Value $numbers
$custOBJ # return this instance of $custOBJ
}
或者简而言之js2010写了什么。