Чтобы объединить несколько файлов, вы можете сделать это:
rem // Prepare empty file:
> "merged.csv" rem/
rem // Merge the files:
for /F "delims=" %%F in ('dir /S /B "xinfo.txt"') do (
copy /Y "merged.csv"+"%%F" "merged.csv" /B
)
Это не проверяет содержимое файла никакими средствами, поэтому для ваших входных данных CSV каждый входной файл заканчивается разрывом строкичтобы получить действительный выходной файл CSV.
Если это не может быть гарантировано, вам нужно прочитать каждый файл по for /F
, который игнорирует пустые строки, а также читает последнюю строку, даже если не завершается строкой-break:
rem // Write to output file:
> "merged.csv" (
for /F "delims=" %%F in ('dir /S /B "xinfo.txt"') do (
rem // Read input files line by line:
for /F usebackq^ delims^=^ eol^= %%L in ("%%F") do echo(%%L
)
)
Чтобы использовать файл заголовка, попробуйте это:
rem // Copy header file:
copy /Y "header.csv" "merged.csv"
rem // Merge the files:
for /F "delims=" %%F in ('dir /S /B "xinfo.txt"') do (
copy /Y "merged.csv"+"%%F" "merged.csv" /B
)
Или это:
rem // Copy header file:
copy /Y "header.csv" "merged.csv"
rem // Append to output file:
>> "merged.csv" (
for /F "delims=" %%F in ('dir /S /B "xinfo.txt"') do (
rem // Read input files line by line:
for /F usebackq^ delims^=^ eol^= %%L in ("%%F") do echo(%%L
)
)