我成功导入了一个 CSV 文件,并想更改 PSObject 数组中的一个值$ds
。
$ds = Import-Csv test.csv -UseCulture
#test.csv content
#A;B
#11;22
#33;44
$ds
$ds.B[1] = 9
$ds
这不起作用,也没有别的。我猜这应该很容易。但是怎么做?
我成功导入了一个 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
因为它每行包含一个对象。每行都有一个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
. 重要的是要知道成员枚举按设计返回只读集合,因此您不能以这种方式修改值。
我不知道为什么这不起作用。
但是,这确实有效:
$ds = import-csv test.csv -UseCulture
#test.csv content
#A;B
#11;22
#33;44
$ds
$ds[1].B = 9
$ds