gpt4 book ai didi

powershell - 使用for循环更改pscustomobject的数组的值

转载 作者:行者123 更新时间:2023-12-02 23:28:10 26 4
gpt4 key购买 nike

我试图创建一个自定义对象数组(pscustomobject),现在我尝试使用for循环更改不同自定义对象的某些值。但这似乎不起作用。这是我尝试过的:

$obj = @([pscustomobject]@{value=0;type="D";used=$false})
$arr1 = @($obj) * 10

for($v = 0; $v -lt 4; $v++){
$arr1[$v].value = ($v+1)
$arr1[$v].type ="bubble"
}

结果是:
                        value type                                                   used
----- ---- ----
4 bubble False
4 bubble False
4 bubble False
4 bubble False
4 bubble False
4 bubble False
4 bubble False
4 bubble False
4 bubble False
4 bubble False

但我希望结果将是:
                        value type                                                   used
----- ---- ----
1 bubble False
2 bubble False
3 bubble False
4 bubble False
4 D False
4 D False
4 D False
4 D False
4 D False
4 D False

这只是一个小片段,我只是想尝试一下。但是我有点不明白我很烦...对不起,我认为这是一个简单的想法,但是看不到什么不好....我仍然是PS新手...:-/

编辑:PSv3被使用,但我认为这没有关系...

最佳答案

这个:

$arr1 = @($obj) * 10

没有创建10个新对象。它创建了10个对同一对象的引用。

请注意以下区别:
$arr1 = 1..10 |% {[pscustomobject]@{value=0;type="D";used=$false}}

for($v = 0; $v -lt 4; $v++){
$arr1[$v].value = ($v+1)
$arr1[$v].type ="bubble"
}
$arr1

value type used
----- ---- ----
1 bubble False
2 bubble False
3 bubble False
4 bubble False
0 D False
0 D False
0 D False
0 D False
0 D False
0 D False

关于powershell - 使用for循环更改pscustomobject的数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27318284/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com