首页 > 解决方案 > 批处理文件复制 CSV 文件中的列

问题描述

我需要能够在 CSV 文件中获取一列并将其复制,以便每个文件的开头和结尾都具有相同的确切值。

请参阅下面的示例,该示例显示了输入和所需的输出。

输入

abc,123,tim,cook
xyz,456,steve,jobs

期望的输出

abc,123,tim,cook,123
xyz,456,steve,jobs,456

理想情况下,我想用批处理脚本来做到这一点

有任何想法吗?

标签: csvbatch-filecmd

解决方案


示例文件test.csv

@echo off
(for /f "usebackq tokens=1,2,* delims=," %%i in ("test.csv") do (
    echo %%i,%%j,%%k,%%j
 )
)>new.csv

非常简单,我们获取字符串并分配给元变量,%%i然后我们将字符串拆分,并仅使用标记 2,然后我们回显元变量并用逗号%%i附加到它。%%a然后输出将在new.csv

PS!!正如@Compo 在评论中所述,具有重复的标头值可能会产生问题,具体取决于您对文件所做的操作,在这种情况下,您可以指定一个新的标头字段,该字段不重复,只需将该字段附加到标头,只需确保将值更改New_HeaderValue为实际的新标头值。:

@echo off
(for /f "usebackq delims=" %%i in ("test.csv") do echo %%i,New_HeaderValue & goto :remainder)>new.csv
:remainder
(for /f "usebackq skip=1 tokens=1,2,* delims=," %%i in ("test.csv") do (
    echo %%i,%%j,%%k,%%j
 )
)>>new.csv

推荐阅读