0

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

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

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

4

2 回答 2

6

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

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

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

于 2018-05-18T12:06:43.943 回答
0

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

但是,这确实有效:

$ds = import-csv test.csv -UseCulture
#test.csv content
#A;B
#11;22
#33;44
$ds
$ds[1].B = 9
$ds
于 2018-05-18T10:54:29.923 回答