You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改PowerShell中Import-Csv导入的PSCustomObject数组值?

解决PowerShell中修改Import-Csv导入对象属性的问题

你遇到的问题是因为对Import-Csv返回的对象结构理解有偏差~

问题原因

Import-Csv导入CSV后返回的是PSObject对象数组,数组里的每个元素对应CSV的一行数据,每个元素的属性对应CSV的列。你写的$ds.B其实是把数组中所有对象的B属性值提取出来,生成了一个新的临时数组——这个临时数组和原对象没有绑定关系,所以修改$ds.B[1]只会改变这个临时数组里的值,不会影响原$ds数组中的对象属性。

正确修改方法

要修改第二行(索引为1)的B列值,你需要先定位到数组中的第二个对象,再直接修改它的B属性:

$ds = Import-Csv test.csv -UseCulture
$ds  # 查看原始数据
$ds[1].B = 9  # 定位到第二个对象,修改它的B属性
$ds  # 再次查看,会看到第二行的B值已经变成9了

补充说明

  • $ds[n]表示数组中第n+1行的对象(因为PowerShell数组索引从0开始)
  • 直接访问对象的属性(比如$ds[n].B)才能真正修改原数据
  • 如果需要批量修改多个行的属性,可以用循环(比如foreach)或者ForEach-Object来处理

内容的提问来源于stack exchange,提问作者Ari Tertsunen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:24:28