Я пытаюсь взять папку, в которой есть несколько CSV файлов, и объединить все эти файлы и информацию в них в один файл с помощью MS DOS. Любые предложения?
В MS DOS копирование нескольких файлов в один файл
Ответ 1
copy *.csv new.csv
Нет необходимости в /b, поскольку csv не является двоичным типом файла.
Ответ 2
copy /b file1 + file2 + file3 newfile
Каждый исходный файл должен быть добавлен в команду копирования с помощью +
, а последнее имя файла будет записано в скопированные данные.
Ответ 3
Если это часть пакета script (.bat
file), и у вас есть большой список файлов, вы можете использовать многострочный ^
и необязательный флаг /Y
для подавления запроса на подтверждение вы хотите перезаписать существующий файл назначения.
REM Concatenate several files to one
COPY /Y ^
this_is_file_1.csv + ^
this_is_file_2.csv + ^
this_is_file_3.csv + ^
this_is_file_4.csv + ^
this_is_file_5.csv + ^
this_is_file_6.csv + ^
this_is_file_7.csv + ^
this_is_file_8.csv + ^
this_is_file_9.csv ^
output_file.csv
Это более аккуратно, чем выполнение команды на одной строке.
Ответ 4
for %f in (filenamewildcard0, filenamewildcard1, ...) do echo %f >> newtargetfilename_with_path
Та же идея, что и Майк Т; может работать лучше при ограничении командной строки MessyDog 127
Ответ 5
type data1.csv > combined.csv
type data2.csv >> combined.csv
type data3.csv >> combined.csv
type data4.csv >> combined.csv
и др.
Предположим, что ваши файлы без заголовков и всех файлов имеют одинаковые столбцы.
Ответ 6
имена файлов должны корректно сортироваться правильно.
file1.bin file2.bin ... file10.bin
не работает нормально
file01.bin file02.bin ... file10.bin
будет работать правильно
c:>for %i in (file*.bin) do type %i >> onebinary.bin
Работает для ascii или двоичных файлов.
Ответ 7
убедитесь, что вы сопоставили y: диск или скопировали все файлы в локальный каталог c:/local
c:/local > copy *. * c:/newfile.txt