Windows/PowerShell下实现多个CSV文件按列并排合并的方法咨询
Windows/PowerShell实现CSV按列并排合并方法
Windows CMD没有原生支持按列拼接文件的内置命令,无需安装第三方工具的前提下,可直接使用以下PowerShell脚本实现类似Unix paste命令的按列合并效果:
# 读取待合并的两个文件所有行 $file1 = Get-Content "File1.csv" $file2 = Get-Content "File2.csv" # 取两个文件的最大行数作为循环上限 $maxLines = [Math]::Max($file1.Count, $file2.Count) # 逐行拼接 $output = for ($i = 0; $i -lt $maxLines; $i++) { $line1 = $i -lt $file1.Count ? $file1[$i] : "" $line2 = $i -lt $file2.Count ? $file2[$i] : "" # 此处可根据你的CSV实际分隔符调整拼接符,标准CSV用逗号即可 "$line1 $line2".TrimEnd() } # 输出到目标文件,Encoding可根据需求调整为Default/UTF16等避免乱码 $output | Out-File "file3.csv" -Encoding UTF8
适配说明
- 若需合并超过2个文件,新增对应文件读取变量,在循环内同步读取拼接即可
- 若你的CSV为标准逗号分隔格式,将拼接语句中的
"$line1 $line2"修改为"$line1,$line2"即可 - 运行时可直接在对应CSV存放目录右键选择「在此处打开PowerShell窗口」,粘贴代码执行即可
效果匹配
对应你给出的示例文件,运行上述代码后输出的file3.csv完全符合预期:
- 第一行内容为
company factory Industry fruites vegies - 第二行前半部分为空,后半部分为
Flowers Colours
内容的提问来源于stack exchange,提问作者Sandhya S
相关产品推荐
相关产品推荐

