PowerShell PSCustomObject 内容编辑

PowerShell PSCustomObject content editing

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

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

这不起作用,也没有别的。 我想这应该很容易。 但是怎么办?

我不知道为什么那行不通。

这确实有效,但是:

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

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

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

可能会让您感到困惑的是,在使用 PowerShell 3.0 或更高版本时,$ds.b[1] 实际上 return 是 44。这是因为称为成员枚举的功能,其中 $ds.B 将 return 数组中每个对象的 B 值,然后 [1] 选择第二个值 44。重要的是要知道,成员枚举 return 是一个 只读 集合,因此您不能那样修改值。