PowerShell PSCustomObject内容编辑

时间:2018-05-18 10:49:00

标签: powershell csv pscustomobject

我成功导入了一个CSV文件,想要更改PSObject数组$ds中的一个值。

$ds = Import-Csv test.csv -UseCulture
#test.csv content
#A;B
#11;22
#33;44
$ds
$ds.B[1] = 9
$ds

这不起作用,也没别的。 我想这应该很容易。 但是如何?

2 个答案:

答案 0 :(得分:6)

您需要访问数组中的正确元素。这里的数组是$ds,因为它每行包含一个对象。每行都有一个B - 属性,您可以读取和设置该属性。这将有效:

#Modify second row's B-value (44) to 9
$ds[1].B = 9

可能让您感到困惑的是$ds.b[1]在使用PowerShell 3.0或更高版本时实际返回44。这是因为名为成员枚举的功能,其中$ds.B将为数组中的每个对象返回B - 值,然后[1]选择第二个值44 。重要的是要知道成员枚举按设计返回只读集合,因此您无法通过这种方式修改值。

答案 1 :(得分:0)

我不知道为什么这样做不起作用。

这确实有效:

$ds = import-csv test.csv -UseCulture
#test.csv content
#A;B
#11;22
#33;44
$ds
$ds[1].B = 9
$ds