首页 > 解决方案 > 合并 2 个 csv 文件并从批处理文件中填充空值

问题描述

我必须合并 2 个 CSV 文件并使用批处理文件用默认值填充空列。

看下面的例子:

文件 1.csv:

ColumnA ColumnB ColumnC ColumnD

文件 2.csv:

ColumnA

所以我需要合并 File2 中的 ColumnA 但没有任何重复,所以我需要检查 File2 中的 ColumnA 值是否不在 File1 中的 columnA 上,然后将其添加到 File1 中。

然后,当它将 ColumnA File2 中的值添加到 ColumnA File1 时,我需要将 file1 的 BC 列和 D 列的值设置为默认值,例如“DefaultValue”。

所以总结一下,我需要我的批处理代码来执行以下操作:

For(i = 0; i < number of row of file2.csv; i++):
   If ColumnA.value(i) isn't in File1.csv.ColumnA
      Add next row to File1.csv: ColumnA = File2.csv.ColumnA.Value(i) 
                                 ColumnB = 'DefaultValue' 
                                 ColumnC = 'DefaultValue'
                                 ColumnD = 'DefaultValue'

您知道如何使用批处理文件来执行此操作吗?

谢谢

标签: csvbatch-file

解决方案


这不是免费的写代码服务;你应该展示你自己解决问题的尝试......无论如何,这是一个非常简单的解决方案:

@echo off
setlocal

rem Load ColumnA from File1 into CA array
for /F %%a in (File1.csv) do set "CA[%%a]=1"

rem Process File2
(for /F %%a in (File2.csv) do (
   if not defined CA[%%a] echo %%a DefaultValueB DefaultValueC DefaultValueD
)) >> File1.csv

推荐阅读