windows - 在循环内部构建自定义POS对象

标签 windows powershell object

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

关于windows - 在循环内部构建自定义POS对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63175745/

相关文章:

C Socket recv()ing 奇怪的字符

windows - 为什么 d3 图表中的日期在 ubuntu 的 firefox 中显示为凌晨 1 点,而在 windows 的 firefox 中显示为日期和日期?

linux - Docker 注册表登录文件在哪里?

powershell - 如何将颜色线插入 StringBuilder 对象

javascript - jQuery 获取无法作为对象访问的数据

.net - 知道 Windows 用户是否处于事件状态

Powershell - 错误处理(如果已调用 Catch block ,则不要调用 finally block )

bash - 寻找匹配的 `'时出现意外的EOF

java - 将 Object[] 数组转换为 java 中的 int [] 数组?

javascript - 如何过滤属于数组值一部分的对象?