将第一个和最后一个条目从CSV复制到工作表

时间:2015-01-19 02:11:11

标签: csv

我对此很新,但我需要一些帮助。

我有数据需要csv文件第6列的第一个和最后一个条目(总共554个)并将其复制到单个工作表中。 csvs都有不同的范围。任何帮助将不胜感激。 感谢

1 个答案:

答案 0 :(得分:0)

@ECHO OFF
SETLOCAL
SET "pickme="
FOR /f "tokens=6delims=," %%a IN (q28017030.csv) DO (
 IF NOT DEFINED pickme ECHO %%a
 SET "pickme=%%a"
)
ECHO %pickme%

GOTO :EOF

我使用了一个名为q28017030.csv的文件,其中包含了我的测试数据。

big,fat,hairy,worksheet,under,discussion,here
data1,data2,data3,data4,data5,data6,data7
data1,data2,data3,data4,data5,data6,data7
data1,data2,data3,data4,data5,data6,data7
data1,data2,data3,data4,data5,bingo,data7

制作

discussion
bingo

我认为这就是你所需要的。

请注意,此解决方案假定列1..6数据不包含逗号 - 唯一的逗号是列分隔符。列1..5也不是空的。

pickme最初被清除,undefined循环读取第一行时for也是如此。因此,echo编辑了列,并在遇到第一个(标题)行后定义pickme。然后在读取每一行时更新它,因此我们需要echo遇到的最后一个值。


啊 - 550左右文件不是

@ECHO OFF
SETLOCAL
(
FOR %%f IN (q28017030*.csv) DO ( 
 SET "pickme="
 FOR /f "tokens=6delims=," %%a IN (%%f) DO (
  IF NOT DEFINED pickme ECHO %%a
  SET "pickme=%%a"
 )
 CALL ECHO %%pickme%%
)
)>new.txt

type new.txt

GOTO:EOF

制作newfile.txt

我将其设置为仅扫描.csv模式“q28017030 * .csv”以方便测试。 *.csv会扫描所有CSV。