PowerShell PSCustomObject内容编辑

0 csv powershell 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
Run Code Online (Sandbox Code Playgroud)

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

Fro*_* F. 6

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

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

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