Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
3862 / 1950 / 622
Регистрация: 26.04.2015
Сообщений: 6,349
1

Копирование содержимого нескольких файлов в один

15.02.2016, 16:14. Показов 3941. Ответов 4
Метки нет (Все метки)

Интересную вещь заметил, не встречал вроде, но если уже опубликовано можно убрать.
Например содержимое файлов:
1.txt
Код
222
333
111
2.txt
Код
333
555
444
3.txt
Код
777
999
888
в папке "papka"
Windows Batch file
1
2
3
@echo off
for %%a in ("papka\*") do sort "%%~a">>"list.txt"
exit
таким кодом содержимое всех файлов будет в "list.txt" с сортировкой строк (по возрастанию) по отношению к каждому файлу.

Добавлено через 11 минут
А, если просто сложить надо содержимое всех файлов в один без сортировки (как есть), то можно так:
Windows Batch file
1
for %%a in ("papka\*") do sort /+1000000 "%%~a">>"list.txt"
ну, с запасом

Добавлено через 3 минуты
Хотя нет, строки сортируются так в обратном порядке в каждом файле.

Добавлено через 2 часа 29 минут
Ну, зато так можно вывести предпоследнюю строку (еще проще последнюю):
Windows Batch file
1
2
3
4
@echo off
sort /+1000<"list.txt">$ & <$ (set /p=& set /p n=) & del $
echo.%n%
pause>nul
.
2
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.02.2016, 16:14
Ответы с готовыми решениями:

Макросы на копирование данных из нескольких файлов excel в один файл excel
Здравствуйте! Помогите сделать два макроса в excel, которые будут копировать данные из множества...

Копирование всех файлов, папок и их содержимого
Собственно как, пробовал через QDirIterator, но не работает

Сохранения в один файл содержимого из нескольких компонентов ListBox
Привет. Задали делать программу, в которой ко всему нужно сохранять/открывать из файла то, что было...

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

4
Эксперт WindowsАвтор FAQ
17605 / 7448 / 884
Регистрация: 25.12.2011
Сообщений: 11,236
Записей в блоге: 16
17.02.2016, 23:33 2
Цитата Сообщение от alpap Посмотреть сообщение
Ну, зато так можно вывести предпоследнюю строку (еще проще последнюю):
Подтверждаю. Интересный и заодно странный функционал.

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

Тогда лучше сразу задать максимально допустимое число:

sort /+2147483647

alpap, в Вашем варианте (через файл) действительно очень быстро находит предпоследние строки. Проверял на 10 МБ файле.
2
3862 / 1950 / 622
Регистрация: 26.04.2015
Сообщений: 6,349
23.02.2016, 16:40  [ТС] 3
Добавлю еще один вариант как дописать строки вначале файла (немного не стандарное решение):
Windows Batch file
1
2
3
4
5
6
7
@echo off
set "a=for /f "delims=" %%a in ('sort /+2147483647 "file.txt"') do echo.%%~a>>"$""
set "b=move /y "$" "file.txt""
 
(%a%) & echo.Строки в начале>>"$" & %b%
(%a%) & %b%
exit
.

Добавлено через 2 минуты
Нечем проверить на скорость по сравнению с классическим вариантом.

Добавлено через 48 минут
Со строками работал, забыл совсем forы поубирать, вот окончательный код:
Windows Batch file
1
2
3
4
5
6
7
@echo off
set "command=sort /+2147483647 "file.txt">>$ & move /y $ "file.txt""
 
%command%
echo.Строки в начале>>$
%command%
exit
.

Не по теме:

Код выше можно убрать

1
Эксперт WindowsАвтор FAQ
17605 / 7448 / 884
Регистрация: 25.12.2011
Сообщений: 11,236
Записей в блоге: 16
23.02.2016, 18:48 4
Стандартный вариант тоже неплох.

Windows Batch file
1
2
echo.Строки в начале>$
copy /b $ + file.txt file_2.txt
1
alpap
23.02.2016, 20:09  [ТС]     Копирование содержимого нескольких файлов в один
  #5

Не по теме:

Цитата Сообщение от Dragokas Посмотреть сообщение
Стандартный вариант тоже неплох
- никто и не спорит, поэтому
Цитата Сообщение от alpap Посмотреть сообщение
Добавлю еще один вариант

0
23.02.2016, 20:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2016, 20:09
Привет! Вот еще темы с ответами:

Инвертирование содержимого файлов из нескольких подкаталогов
Как можно сделать инвертирование содержимого файлов из нескольких подкаталогов? Это первая часть,...

Вывод в консоли содержимого нескольких файлов
Имеется некий код программы, необходимо чтобы данные считывались все сразу, а не при нажатии Enter...

Копирование файлов на основе результатов сравнения содержимого каталогов
Добрый день! Прошу помощи в написании батника со следующим функционалом: Есть три папки A, B,...

Запись содержимого из n файлов в один
Добрый день! Имеется проблема. Есть куча фалов расширения eml надо содержимое каждого записать в...

Копирование и удаление файлов на основе анализа содержимого двух папок
Добрый день! Снова нужна Ваша помощь по bat-файлу, задача в следующем: Есть папка источник...

Копирование из нескольких txt в один в определенной последовательности
В общем такая проблема , мне срочно нужна программа которая будет выборочно копировать данные(от...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.