You need to enable JavaScript to run this app. 如何使用PowerShell在CSV文件表头上方添加多列自定义内容
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PowerShell在CSV文件表头上方添加多列自定义内容

实现方案

固定列数实现(已知原有CSV列数的场景)

你原有CSV为3列,每一行前置内容需要用2个逗号分隔3个列的位置,包含逗号的列内容用双引号包裹即可,直接修改现有代码如下:

Set-Content -LiteralPath sample.csv -NoNewLine -Value (
  @'
Title,,
"From/De:","To/A:",
"Name, with comma","Name2",
"Add1, Road A","Add2, Road B",
"Zip1 10001","Zip2 20001",

'@ + (Get-Content -Raw sample.csv)
)
  • 每行末尾的逗号数量根据列数调整:N列就加N-1个逗号,空列无需填写内容即可
  • 内容含逗号、空格、特殊符号时,用双引号包裹整段内容即可完成CSV标准转义

动态适配列数实现(无需提前确认原有CSV列数)

如果需要兼容不同列数的CSV,可以先读取原有CSV的表头自动计算列数,自动为前置行补全空列,代码如下:

# 读取原有CSV内容
$oldContent = Get-Content -Raw sample.csv
# 计算列数:取第一行表头拆分后的元素数量
$colCount = ($oldContent -split "`n", 2)[0].Split(',').Count

# 定义前置行内容,每一行只需要填你需要的列,后面会自动补全空列
$preLines = @(
    "Title",
    "`"From/De:`",`"To/A:`"",
    "`"Name, with comma`",`"Name2`"",
    "`"Add1, Road A`",`"Add2, Road B`"",
    "`"Zip1 10001`",`"Zip2 20001`""
)

# 为每一行前置内容补全足够的逗号,对齐总列数
$preContent = $preLines | ForEach-Object {
    $currentCol = $_.Split(',').Count
    $_ + ',' * ($colCount - $currentCol)
} | Join-String -Separator "`n"

# 合并内容写入文件
Set-Content -LiteralPath sample.csv -NoNewLine -Value ($preContent + "`n" + $oldContent)

注意:如果你的原有CSV表头本身包含逗号(已用双引号转义),可以替换列数计算逻辑为$colCount = (Import-Csv sample.csv | Get-Member -MemberType NoteProperty).Count,避免拆分错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 09:54:02