这很新,所以请原谅我,
我的任务是创建一个自定义对象,将其称为$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写了什么。

09-12 23:51