PDA

Показать полную графическую версию : Слияние,склеивание большого кол-ва текстовых файлов в один.


serg515
31-10-2020, 20:45
Есть большое количество текстовых файлов в папке.
Как лучше,быстрее и качественнее склеить такое кол-во файлов средствами .bat
Можно и .vbs.
Чтобы не было косяков,как иногда бывает например в Total Commander в виде накладок текста и т.д.

Iska
31-10-2020, 20:58
serg515, тогда Вам нужно а) предоставить образцы файлов, упаковав их в архив, б) описать, в каком именно порядке они должны быть «склеены», в) описать на предоставленных образцах, что подразумевается под «косяков,как иногда бывает например в Total Commander в виде накладок текста и т.д.».

serg515
31-10-2020, 22:24
тогда Вам нужно а) предоставить образцы файлов, упаковав их в архив, б) описать, в каком именно порядке они должны быть «склеены», в) описать на предоставленных образцах, что подразумевается под «косяков,как иногда бывает например в Total Commander в виде накладок текста и т.д.». »

склеены в данном случае, не обязательно по очереди.

пример:

файл 1

текст1текст2текст3
текст4текст5
текст6текст7текст8текст9

файл 2

текст10
текст11текст12текст13
текст14текст15текст16

файл 3

текст17текст18
текст19
текст20текст21текст22

результат.
чтобы хотя бы так не было:

текст1текст2текст3текст4текст5
текст6текст7текст8текст9
текст10
текст12текст13
текст14текст15текст16
текст18
текст19
текст20текст21текст22

а было:

текст1текст2текст3
текст4текст5
текст6текст7текст8текст9
текст10
текст11текст12текст13
текст14текст15текст16
текст17текст18
текст19
текст20текст21текст22

Iska
01-11-2020, 02:55
serg515, повторяю:
упаковав их в архив »
— и образцы, и как должно быть, и как не должно быть.

DJ Mogarych
01-11-2020, 10:44
powershell:

gc "C:\temp\combining\*.txt" > "C:\temp\combined.txt"

YuS_2
01-11-2020, 11:41
gc »
Это, конечно, хороший вариант, но таки Iska прав, необходимы образцы, для определения кодировки, как минимум...
Зачастую проще увидеть файл, чем вытягивать всю информацию от задающих вопросы, "в час по чайной ложке"... :)

Кстати, в данном случае, для ускорения процесса, лучше использовать -raw

Iska
01-11-2020, 12:13
Кодировка, наличие/отсутствие BOM, тип конца строки. И наличие/отсутствие символа конца строки в конце последней строки файлов — и как с этим поступать.

serg515
01-11-2020, 14:40
и образцы, и как должно быть, и как не должно быть. »

Foreigner
01-11-2020, 15:02
(Get-Content *.txt | Out-String).Trim() | Set-Content file.txt -NoNewLine


Исходя из примеров в архиве. Т.е. результирующий файл без заключительного переноса строки.

megaloman
01-11-2020, 17:58
>nul copy /b Z:\Box_In\All\*.txt Z:\Box_In\summ.TXTСумма длин файлов равна длине суммарного файла. Можно просто запустить в коммандной строке. Исходные файлы и суммарный файл должны быть либо в разных папках, либо иметь разное расширение (маску)

Busla
02-11-2020, 11:01
Foreigner, очень местячковая магия с Out-String, а за Trim вас вообще надо расстрелять

megaloman, в общем случае объединять текст в двоичном режиме - плохая идея из-за возможных BOM и EOF

serg515
02-11-2020, 18:35
powershell:
Код:
gc "C:\temp\combining\*.txt" > "C:\temp\combined.txt" »

на плохо сработало,только результирующий файл получился в два раза больше размером чем должен был быть..

Код:
>nul copy /b Z:\Box_In\All\*.txt Z:\Box_In\summ.TXT »

к сожалению в некоторых строках накладка и обрезка части текста.

Код:
(Get-Content *.txt | Out-String).Trim() | Set-Content file.txt -NoNewLine
»

пока нормально вроде без косяков.




© OSzone.net 2001-2012