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

如何使用PowerShell重命名含特殊字符的CSV列标题?

嘿,这个问题我太熟悉了!在PowerShell里处理带特殊字符(空格、点号、还有像掳这种非ASCII符号)的CSV列标题,核心就是正确引用这些特殊列名——不能直接像普通无特殊字符的列那样写$_.Avis,得换个写法才行。

核心解决方法:用方括号包裹特殊列名

当CSV列名包含空格、点、特殊符号时,把列名放在方括号[]里,PowerShell就能准确识别这个属性了。比如:

  • 原列N掳 Invent. → 写成$_.['N掳 Invent.']
  • 原列Cd.Srv.Cl. → 写成$_.['Cd.Srv.Cl.']
  • 原列Client Name → 写成$_.['Client Name']

完整重命名示例代码

假设你想把所有特殊列都改成更简洁的标题(同时保留你原来对Avis列的修改需求),可以用这段代码:

# 替换成你的实际文件夹路径
$treatmentfolder = "C:\Your\Target\Folder"

Import-Csv "$treatmentfolder\data.csv" | 
    Select-Object 
        @{Name='avis'; Expression={$_.Avis}},
        @{Name='InventoryNumber'; Expression={$_.['N掳 Invent.']}},
        @{Name='ServiceCode'; Expression={$_.['Cd.Srv.Cl.']}},
        @{Name='ClientName'; Expression={$_.['Client Name']}} |
    Export-Csv -NoTypeInformation "$treatmentfolder\data2.csv"

额外实用提示

  • 如果你的CSV文件存在编码问题(比如特殊字符掳显示乱码),可以在Import-Csv时指定编码,比如Import-Csv -Encoding UTF8 "$treatmentfolder\data.csv",根据你的CSV实际编码调整(可选值有Default、Unicode、UTF7等)。
  • 如果你只想修改某几列,同时保留其他原列,可以在Select-Object里加上*,比如Select-Object *, @{Name='新标题'; Expression={$_.['旧特殊列名']}},这样会保留所有原列,同时替换/添加目标列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:35:33