我尝试使用批处理文件将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
我错过了什么?
答案 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行以后。我希望你的文件更短)