我成功导入了一个CSV文件,想要更改PSObject数组$ds
中的一个值。
$ds = Import-Csv test.csv -UseCulture
#test.csv content
#A;B
#11;22
#33;44
$ds
$ds.B[1] = 9
$ds
这不起作用,也没别的。 我想这应该很容易。 但是如何?
答案 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