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

如何用PowerShell正确拆分含多行文本的CSV为纯文本文件?

正确拆分CSV为单个文本文件的PowerShell解决方案

问题根源

你原脚本的核心问题是用Get-Content按纯文本行读取CSV,无法识别CSV规范中引号包裹的多行字段——示例里的Respuesta字段包含换行,原脚本会把这些换行当成独立的CSV行,导致拆分逻辑彻底混乱,生成大量空文件或错误拆分的文件。

正确脚本

用PowerShell专门的CSV处理cmdlet Import-Csv,它会严格按照CSV规范解析每一行数据,自动处理多行字段:

# 读取CSV文件,指定UTF-8编码确保西班牙语特殊字符正确解析
$csvData = Import-Csv -Path 'csv-full.csv' -Encoding utf8

# 输出文件前缀
$outputPrefix = 'output_done_'

# 遍历每一行CSV数据
foreach ($index in 0..($csvData.Count - 1)) {
    $currentRow = $csvData[$index]
    $fileNumber = $index + 1 # 文件编号从1开始递增
    $outputFilePath = "$outputPrefix$fileNumber.txt"

    # 组合输出内容:可根据需求调整,比如只保留Respuesta字段
    $fileContent = @"
$($currentRow.Pregunta)

$($currentRow.Respuesta)
"@

    # 写入文件,指定UTF-8编码确保特殊字符保留
    $fileContent | Out-File -Path $outputFilePath -Encoding utf8 -Force
    Write-Host "已生成文件: $outputFilePath"
}

关键说明

  1. CSV解析:Import-Csv会自动识别引号包裹的多行字段,不会把字段内的换行当成新行,保证每个CSV行对应一条完整数据。
  2. 编码处理:读取和写入都指定-Encoding utf8,确保西班牙语的重音字符(áéíóúñ)、特殊符号(¿)正确读写,不会出现乱码。
  3. 内容自定义:如果只需要输出Respuesta字段的内容,直接把$fileContent改成$currentRow.Respuesta即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:43:26