【发布时间】:2014-03-12 15:05:41
【问题描述】:
我有一个小批处理文件,它根据匹配值合并两个 csv 文件。见以下代码:
@ECHO OFF
for /f "tokens=1 delims=, skip=1" %%i in (File2.csv) do @findstr "%%i," File1.csv >nul & If errorlevel 0 if not errorlevel 1 (for /f "tokens=1-4 delims=," %%m in ('findstr /i /L "%%i," File1.csv') do (@echo %%1,%%2,%%3,%%4>>output.csv
echo %%i))
我的 file2.csv 包含 4 列数据,我的 file1.csv 包含 2 列数据。两者的第 1 列是我想要匹配的唯一值(它是一个包含扩展名的文件名)。
我希望我的输出 csv 包含来自 File2.csv 的所有 4 列数据,以及与之匹配的 File1.csv 的第 2 列。
然后,我希望删除输出 csv 的第一列,并将其替换为 File1.csv 中的附加列 2。
我希望我已经解释得足够好,我只是想知道这是否可能。
任何帮助将不胜感激!
【问题讨论】:
-
什么类型的数据?显示所需输出的示例会很有帮助。为了澄清,匹配每个文件的第 1 列并输出 file2 中的所有列 + file1 中的第 2 列?
-
有没有一种方法可以让我更轻松地上传示例文件?
标签: batch-file csv