如何在PowerShell中为已有CSV文件添加带空格表头的列?
解决方法:生成带固定值新列的CSV文件
你的需求是从仅含First Last列的firstlast.csv(数据为John Doe、Jane Doe)生成新CSV,新增One Street(值全为X Street)、New Address(值全为Mary St)两列,最终包含这三列。
你写的代码有几个问题:
- 把存储多行数据的
$Name直接赋值给哈希表的First Last键,会导致该列存的是对象而非具体姓名 Select-Object里指定带空格的属性名时没加引号,属于语法错误- 哈希表的方式没办法把原数据的每一行对应上新增列,生成的结构完全不符合要求
正确的实现代码如下:
# 导入原CSV数据 $originalData = Import-Csv -Path "C:\firstlast.csv" # 为每行添加固定值的新列,并指定列顺序 $newData = $originalData | Select-Object ` @{Name='One Street'; Expression={'X Street'}}, 'First Last', @{Name='New Address'; Expression={'Mary St'}} # 导出到新CSV文件 $newData | Export-Csv -Path "C:\NewData.csv" -NoTypeInformation -Encoding UTF8
关键说明:
- 用
Select-Object的计算属性语法(@{Name=表头名; Expression=值})创建带空格的新列,Expression中写固定值就能让整列统一使用该内容 - 直接保留原有的
First Last列,按需求指定各列的排列顺序 - 添加
-Encoding UTF8可避免导出后出现乱码,-NoTypeInformation会去掉PowerShell默认添加的类型信息行,让CSV内容更规范
内容的提问来源于stack exchange,提问作者greenGob19
相关产品推荐
相关产品推荐

