将csv合并到另一个文件夹位置

时间:2017-11-23 11:38:35

标签: csv batch-file merge copy

我尝试使用批处理文件将csv文件合并到一个文本文件中。

我的批处理文件位于C:\Users\aallen,CSV文件位于C:\Users\aallen\Test

批处理文件仅在与csv位于同一位置时才有效。

我没有尝试过以下命令:

1)cd "C:\Users\aallen\Test" copy *csv test.csv
2)copy "C:\Users\aallen\Test" *csv test.csv

我错过了什么?

1 个答案:

答案 0 :(得分:0)

从问题和评论中收集信息,您希望将多个CSV文件合并为一个,但只保留一次标题。

more +1能够显示文件,跳过第一行(请参阅more /?),但more +1 *.csv仅跳过第一个文件的第一行并将其保留在所有其他文件中(恰好与你需要的相反)。因此,您必须使用for循环一个接一个地处理一个文件并自己检查第一个文件(可以使用标志变量(flag来完成)。将整个循环重定向到结果文件。

@echo off
set "first=yes"
(for %%a in ("C:\Users\aallen\Test\*.csv") do (
  if defined first (
    type "%%a"
    set "first="
  ) else (
    more +1 "%%a"
  )
))>"d:\new location\test.csv"

注意:命令行中的more只打印一个屏幕然后暂停,直到您按下某个键。但是当你在批处理文件中使用它时,它并没有(说实话,确实如此,但是在65000行以后。我希望你的文件更短)