Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Слияние,склеивание большого кол-ва текстовых файлов в один. (http://forum.oszone.net/showthread.php?t=346902)

serg515 31-10-2020 20:45 2938330

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

Iska 31-10-2020 20:58 2938334

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

serg515 31-10-2020 22:24 2938343

Цитата:

Цитата Iska
тогда Вам нужно а) предоставить образцы файлов, упаковав их в архив, б) описать, в каком именно порядке они должны быть «склеены», в) описать на предоставленных образцах, что подразумевается под «косяков,как иногда бывает например в 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 2938354

serg515, повторяю:
Цитата:

Цитата Iska
упаковав их в архив »

— и образцы, и как должно быть, и как не должно быть.

DJ Mogarych 01-11-2020 10:44 2938373

powershell:
Код:

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

YuS_2 01-11-2020 11:41 2938384

Цитата:

Цитата DJ Mogarych
gc »

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

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

Iska 01-11-2020 12:13 2938391

Кодировка, наличие/отсутствие BOM, тип конца строки. И наличие/отсутствие символа конца строки в конце последней строки файлов — и как с этим поступать.

serg515 01-11-2020 14:40 2938412

Вложений: 1
Цитата:

Цитата Iska
и образцы, и как должно быть, и как не должно быть. »


Foreigner 01-11-2020 15:02 2938417

Код:

(Get-Content *.txt | Out-String).Trim() | Set-Content file.txt -NoNewLine
Исходя из примеров в архиве. Т.е. результирующий файл без заключительного переноса строки.

megaloman 01-11-2020 17:58 2938442

Код:

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

Busla 02-11-2020 11:01 2938526

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

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

serg515 02-11-2020 18:35 2938585

Цитата:

Цитата DJ Mogarych
powershell:
Код:
gc "C:\temp\combining\*.txt" > "C:\temp\combined.txt" »

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

Цитата:

Цитата megaloman
Код:
>nul copy /b Z:\Box_In\All\*.txt Z:\Box_In\summ.TXT »

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

Цитата:

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

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


Время: 08:06.

Время: 08:06.
© OSzone.net 2001-