2013-09-17 5 views
0

Можно ли объединить 2 текстовых файла в один большой, делая ход? Robocopy - это то, что я использую сейчас, но я открыт для других вариантов.Robocopy - несколько текстовых файлов -> 1

У меня есть пара «вычислительных» серверов, выводящих CSV-подобные данные в отдельные текстовые файлы. Затем эти файлы перемещаются на сервер загрузки, который массово импортирует данные на сервер базы данных.

У нас есть много небольших файлов, и есть значительные улучшения с меньшими большими файлами на стороне импорта db.

У кого-нибудь есть решение? проблемы с

EOF's 

или

\r\n's 

?

ответ

1
for /f "delims==" %%i in ('dir "\\server\share\data*.txt" /b') do (type "\\server\share\%%i">>new.txt&&echo.>>new.txt) 


«delims ==», чтобы захватить имя файла, даже если есть пробелы, то %% я для пакетного файла, используйте% Я в командной строке. «кавычки» предназначены для пробелов в именах файлов,/b для голого формата, чтобы избавиться от другой информации, эха. состоит в том, чтобы остановить первую строку file2 от конкатенирования в последней строке файла1. new.txt будет в каталоге, из которого вы запускаете это.

+0

Это последнее эхо является блестящим. Прекрасно работает. Спасибо, и всем остальным предложениям. Это работало лучше всего для моих нужд. – briansol

1

Я думаю, что это то, что вы ищете ..

TYPE FILEA.TXT>FILEC.TXT 
TYPE FILEB.TXT>>FILEC.TXT 

Примечание: если вы используете один>, она будет переписана файл каждый раз .. Если вы используете >> он будет добавлять.

Поскольку вы сказали, что есть много маленьких файлов, вы можете сделать следующее, а также:

FOR /F %%G IN ('DIR "D:\RESEARCH\Kent\*.TXT" /B') DO (TYPE "D:\RESEARCH\Kent\%%G">>D:\SOMEBIGFILE.TXT) 
pause 

Измененная мой ответ, и он прекрасно работает на сервере я только что проверенного. Один «Gotcha» - это то, где у вас есть SOMEBIGFILE.TXT - если он находится в той же папке, он также добавит это. :)

+0

Спасибо, я попробую это и посмотреть, как она идет. – briansol

+0

Это не работает ... D: \ Data> FOR/F% G IN ('DIR \\ server \ share \ data \ *. TXT') DO (TYPE% G 1 >> output. xfer) D: \ Data> (TYPE Volume 1 >> output.xfer) Система не может найти указанный файл. D: \ Data> (TYPE Volume 1 >> output.xfer) Система не может найти указанный файл. D: \ Data> (TYPE Directory 1 >> output.xfer) Система не может найти указанный файл. D: \ Data> (TYPE 09/17/2013 1 >> output.xfer) Синтаксис команды неверен. D: \ Data> (TYPE 09/17/2013 1 >> output.xfer) Синтаксис команды неверен. – briansol

+1

Пожалуйста, см. Обновленный ответ .. – Leptonator

4

попробовать это (пример):

copy /a file1.txt + file2.txt + file3.txt + file4.txt = file.txt 
Смежные вопросы