Как объединить файлы в командной строке

Обновлено: 07.07.2024

Однажды мне понадобилось объединить пачку текстовых файлов, лежащих в одной директории, в один файл. Делать руками этого не хотелось и мне на помощь, как всегда, пришёл Гугл! Я много слышал о мощности такого средства, как PowerShell, и решил использовать его для этой «мегазадачи».

Основные команды (windows cmd)

Полный список команд можно вывести набрав HELP в командной строке.

Что пошло не так

Гугл подсказал мне, что сделать это можно простой командой

«Действительно круто! Просто Unix-way какой-то!» — подумал я. Скопировал команду, слегка модифицировал её и нажал Enter. Курсор перешёл на новую строку… и больше ничего. В файловом менеджере я открыл итоговый файл — в нём действительно было что-то похожее на нужный результат.

Присмотревшись к размеру файла я увидел, что он как-то подозрительно велик. Его размер превышал 100 Мегабайт. Хотя водные данные не были такими большими.

Почему это случилось?

Всё дело в моей «лёгкой модификации». Мне просто не нужен был фильтр по расширению. Да и параметр этот не является обязательным. И получилось, что команда создала результирующий файл, увидела, что он есть в директории, прочитала его и снова записала своё содержимое в конец и делала это, пока я не нажал Ctrl C Никак по другому непрерывный рост выходного файла я объяснить для себя не смог

Создаю текстовый файл

или в короткой форме

Проблема повторяется. Результирующий файл растёт, пополняясь строкой из исходного (или строками из самого себя?). За 10 секунд выполнения:

Так же интересно — если в качестве параметра последней команде указать имя единственного файла в директории, то, конечно же, как вы уже догадались барабанная дробь… в файл запишется пустота!

Вот такая вот «интересная» логика работы

Что получилось

Созданный на первом шаге файл начинает расти. Это поведение как минимум непредсказуемое. Так же удивило, что операционная система продолжает нормально работать. Файл медленно (или не очень?) растёт, не блокируя работу пользователя.

Описание

Copy copy

Копирует один или несколько файлов из одного расположения в другое. Copies one or more files from one location to another.

В консоли восстановления можно также использовать команду Копировать с другими параметрами. You can also use the copy command, with different parameters, from the Recovery Console. Дополнительные сведения о консоли восстановления см.

Как избежать

Фильтровать список входных файлов:

Но и это не спасёт, если и входные и выходной файл у вас подходят под условие фильтра

Этот ответ собрал почти 3000 «лайков»! Это конечно меньше, чем ответ на вопрос как закрыть vim, но тоже, считаю, показательно!

Проще всего это сделать через коммандную строку в Windows и никаких скриптов не нужно!

copy *.txt С:папкаимя_файла_с_результатом.txt

bat - Слияние файлов через cmd - Stack Overflow на русском

или использовать программу TXTcollector 2.0.2

TXTcollector – программа для соединения нескольких текстовых файлов в один. Конечно, если нужно объединить два или три txt-файла, то гораздо проще обойтись без какой-либо специальной программы и просто скопировать один документ в другой. Но если таких документов десятки или сотни, этот процесс может значительно затянуться.
TXTcollector предоставляет возможность решать подобные задачи за несколько секунд. Чтобы объединить файлы, поместите их в одну папку, запустите TXTcollector, укажите ему место хранения файлов (кнопка «Browse folders»), и объедините их (нажмите кнопку «Combine all files»). После этого программа предложит указать место, куда нужно сохранить файл, содержащий текст всех объединяемых файлов, а также его название. По желанию, содержание разных файлов в новом документе можно разделить черточками или другими символами.
TXTcollector работает с файлами форматов txt, bat, cfg, csv, dat, htm, ini, inf, log, reg, tag, xml. Русский, украинский или другие словянские языки отсутствуют, но, учитывая простоту программы, это не создает никаких проблем.

bat - Слияние файлов через cmd - Stack Overflow на русском

Команда cd

Текущий каталог можно изменить с помощью команды

Путь к требуемому каталогу указывается с учетом приведенных выше замечаний. Например, команда CD выполняет переход в корневой каталог текущего диска. Если запустить команду CD без параметров, то на экран будут выведены имена текущего диска и каталога.

Команда move

Синтаксис команды для перемещения одного или более файлов имеет вид:

Синтаксис команды для переименования папки имеет вид:

Здесь параметр результирующий_файл задает новое размещение файла и может включать имя диска, двоеточие, имя каталога, либо их сочетание. Если перемещается только один файл, допускается указать его новое имя. Это позволяет сразу переместить и переименовать файл. Например,

Если указан ключ /-Y, то при создании каталогов и замене файлов будет выдаваться запрос на подтверждение. Ключ /Y отменяет выдачу такого запроса.

CD | COPY | XCOPY | DIR | MKDIR | RMDIR | DEL | REN | MOVE

Команда xcopy

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

:/> Как сбросить Виндовс 10 до заводских настроек - четыре эффективных способа

Синтаксис этой команды:

Команда XCOPY имеет множество ключей, мы коснемся лишь некоторых из них. Ключ /D[:[дата]] позволяет копировать только файлы, измененные не ранее указанной даты. Если параметр дата не указан, то копирование будет производиться только если источник новее результата. Например, команда

Ключ /S позволяет копировать все непустые подкаталоги в каталоге-источнике. С помощью же ключа /E можно копировать вообще все подкаталоги, включая и пустые.

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

Ключ /I важен для случая, когда копируются несколько файлов, а файл назначения отсутствует. При задании этого ключа команда XCOPY считает, что файл назначения должен быть каталогом. Например, если задать ключ /I в команде копирования всех файлов с расширением txt из текущего каталога в несуществующий еще подкаталог TEXT,

то подкаталог TEXT будет создан без дополнительных запросов.

Ключи /Q, /F и /L отвечают за режим отображения при копировании. При задании ключа /Q имена файлов при копировании не отображаются, ключа /F — отображаются полные пути источника и результата.

Ключ /T позволяет применять XCOPY для копирования только структуры каталогов источника, без дублирования находящихся в этих каталогах файлов, причем пустые каталоги и подкаталоги не включаются.

Используя XCOPY можно при копировании обновлять только уже существующие файлы (новые файлы при этом не записываются). Для этого применяется ключ /U. Например, если в каталоге C:2 находились файлы a.txt и b.txt, а в каталоге C:1 — файлы a.txt, b.txt, c.txt и d.txt, то после выполнения команды

Ключи /Y и /-Y определяют, нужно ли запрашивать подтверждение перед заменой файлов при копировании. /Y — подавление запроса подтверждения на перезапись существующего целевого файла, /-Y — запрос подтверждения на перезапись существующего целевого файла.

Командная строка или пакетный cmd для объединения нескольких файлов

Предполагая, что вы говорите о добавлении текстовых файлов, copy команда может использоваться для их добавления:

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

Это предполагает, что вы знаете, что двоичные файлы, с которыми вы работаете, могут быть добавлены последовательно; если нет, вы получите кучу бесполезных данных.

Объединение текстовых файлов с командной строкой windows, удаление ведущих строк

Я знаю, вы сказали, что не можете установить какое-либо программное обеспечение, но я не уверен, насколько это ограничение. Во всяком случае, у меня была та же проблема (попытка объединить два файла с предположительно одинаковыми заголовками), и я подумал, что предоставлю альтернативный ответ для других, кто придет на эту страницу, так как это отлично сработало для меня.

попробовав целую кучу команд в windows и будучи сильно разочарованным, а также попробовав всевозможные графические редакторы, которые обещали быть в состоянии чтобы открыть большие файлы, но потом не смог, я, наконец, вернулся к своим корням Linux и открыл приглашение Cygwin. Две команды:

на file1.csv 800 МБ и file2.csv 400MB, эти две команды заняли менее 5 секунд на моей машине. В подсказке Cygwin, не меньше. Я думал, что команды Linux должны быть медленными в Cygwin, но этот подход потребовал гораздо меньше усилий и был намного проще, чем любой подход windows, который я мог найти.

Параметры parameters

Параметр ParameterОписание Description
/d /dПозволяет сохранить копируемые зашифрованные файлы в виде расшифрованных файлов в месте назначения. Allows the encrypted files being copied to be saved as decrypted files at the destination.
/v /vПроверяет, правильно ли записаны новые файлы. Verifies that new files are written correctly.
/n /nИспользует короткое имя файла (если доступно) при копировании файла с именем длиннее восьми символов или с расширением имени файла длиннее трех символов. Uses a short file name, if available, when copying a file with a name longer than eight characters, or with a file name extension longer than three characters.
/y /yПодавляет запрос на подтверждение перезаписи существующего целевого файла. Suppresses prompting to confirm that you want to overwrite an existing destination file.
/-и /-yВыводит запрос на подтверждение перезаписи существующего целевого файла. Prompts you to confirm that you want to overwrite an existing destination file.
/z /zКопирует сетевые файлы в перезапускаемый режим. Copies networked files in restartable mode.
/a /aУказывает текстовый файл ASCII. Indicates an ASCII text file.
/b /bУказывает на двоичный файл. Indicates a binary file.
Обязательный элемент. Required. Указывает расположение, из которого необходимо скопировать файл или набор файлов. Specifies the location from which you want to copy a file or set of files. Источник может состоять из буквы диска и двоеточия, имени каталога, имени файла или их сочетания. Source can consist of a drive letter and colon, a directory name, a file name, or a combination of these.
Обязательный элемент. Required. Указывает расположение, в которое необходимо скопировать файл или набор файлов. Specifies the location to which you want to copy a file or set of files. Назначение может состоять из буквы диска и двоеточия, имени каталога, имени файла или их сочетания. Destination can consist of a drive letter and colon, a directory name, a file name, or a combination of these.
/? /?Отображение справки в командной строке. Displays help at the command prompt.

Можно скопировать текстовый файл ASCII, в котором используется символ конца файла (CTRL Z), чтобы указать конец файла. You can copy an ASCII text file that uses an end-of-file character (CTRL Z) to indicate the end of the file.

Если /b указывает интерпретатору команд считывать число байтов, указанное размером файла в каталоге. If /b directs the command interpreter to read the number of bytes specified by the file size in the directory. /b — это значение по умолчанию для Copy, если только копирование не объединяет файлы. /b is the default value for copy, unless copy combines files.

Чтобы добавить файлы, укажите один файл для назначения, но несколько файлов для источника (используйте символы-шаблоны или формат файла file1 file2 файл3 ). To append files, specify a single file for destination, but multiple files for source (use wildcard characters or file1 file2 file3 format).

Имя устройства можно заменить одним или несколькими экземплярами источника или назначения. You can substitute a device name for one or more occurrences of source or destination.

Если назначением является устройство (например, COM1 или LPT1), параметр /b копирует данные на устройство в двоичном режиме. If destination is a device (for example, Com1 or Lpt1), the /b option copies data to the device in binary mode.

В двоичном режиме copy/b копирует все символы (включая такие специальные символы, как CTRL C, CTRL S, CTRL Z и ввод) на устройство в виде данных. In binary mode, copy /b copies all characters (including special characters such as CTRL C, CTRL S, CTRL Z, and ENTER) to the device, as data.

Однако если параметр /b не указан, данные копируются на устройство в режиме ASCII. However, if you omit /b, the data is copied to the device in ASCII mode. В режиме ASCII специальные символы могут привести к объединению файлов во время процесса копирования. In ASCII mode, special characters might cause files to combine during the copying process.

Если целевой файл не указан, создается копия с тем же именем, датой изменения и временем изменения, что и в исходном файле. If you don’t specify a destination file, a copy is created with the same name, modified date, and modified time as the original file.

Чтобы скопировать файлы длиной 0 байт или скопировать все файлы и подкаталоги каталога, используйте команду xcopy. To copy files that are 0 bytes long, or to copy all of a directory’s files and subdirectories, use the xcopy command.

Чтобы назначить текущее время и дату файлу без изменения файла, используйте следующий синтаксис: To assign the current time and date to a file without modifying the file, use the following syntax:

Где запятые указывают, что конечный параметр был намеренно оставлен. Where the commas indicate that the destination parameter has been intentionally left out.

Примеры examples

Чтобы скопировать файл с именем memo.doc для letter.doc на текущем диске и убедиться, что символ конца файла (Ctrl Z) находится в конце скопированного файла, введите: To copy a file called memo.doc to letter.doc in the current drive and ensure that an end-of-file character (CTRL Z) is at the end of the copied file, type:

:/> Как перенести систему с hdd на hdd windows 10: способы клонирования и перемещения

Чтобы объединить Mar89. rpt, Apr89. rpt и May89. rpt, расположенные в текущем каталоге, и поместить их в файл с именем Report (также в текущем каталоге), введите: To combine Mar89.rpt, Apr89.rpt, and May89.rpt, which are located in the current directory, and place them in a file named Report (also in the current directory), type:

При объединении файлов команда копирования помечает конечный файл текущими датой и временем. If you combine files, the copy command marks the destination file with the current date and time. Если параметр Destination не указан, файлы объединяются и сохраняются под именем первого файла в списке. If you omit destination, the files are combined and stored under the name of the first file in the list.

Чтобы объединить все файлы в отчете, если файл с именем Report уже существует, введите: To combine all files in Report, when a file named Report already exists, type:

Чтобы объединить несколько двоичных файлов в один файл, используйте подстановочные знаки, включите /b. To combine several binary files into one file by using wildcard characters, include /b. Это предотвращает расинтерпретацию CTRL Z в качестве символа конца файла в Windows. This prevents Windows from treating CTRL Z as an end-of-file character. Например, введите: For example, type:

При объединении двоичных файлов результирующий файл может оказаться непригодным для использования из-за внутреннего форматирования. If you combine binary files, the resulting file might be unusable due to internal formatting.

Примеры команд для работы с файловой системой

Рассмотрим некоторые наиболее часто используемые команды для работы с файловой системой. Отметим сначала несколько особенностей определения путей к файлам в Windows.

Пути к объектам файловой системы

Существуют особые обозначения для текущего каталога и родительского каталогов. Текущий каталог обозначается символом . (точка), его родительский каталог — символами .. (две точки). Например, если текущим каталогом является C:WINDOWS, то путь к файлу autoexec.bat в корневом каталоге диска C: может быть записан в виде ..autoexec.bat.

В именах файлов (но не дисков или каталогов) можно применять так называемые групповые символы или шаблоны: ? (вопросительный знак) и * (звездочка). Символ * в имени файла означает произвольное количество любых допустимых символов, символ ? — один произвольный символ или его отсутствие.

Скажем, под шаблон text??1.txt подходят, например, имена text121.txt и text911.txt, под шаблон text*.txt — имена text.txt, textab12.txt, а под шаблон text.* — все файлы с именем text и произвольным расширением.

Перейдем теперь непосредственно к командам для работы с файловой системой.

Синтаксис

Слияние файлов через cmd

Перевожу игру на русский. Необходима помощь по консоли.
Задача стоит в том, чтобы склеить файлы формата *.scenarygame из множества разных подпапок (которые суть ни что иное как строки диалога, которые можно открыть блокнотом) в один тхт файл.

Условное выполнение и группировка команд

В командной строке Windows NT/2000/XP можно использовать специальные символы, которые позволяют вводить несколько команд одновременно и управлять работой команд в зависимости от результатов их выполнения. С помощью таких символов условной обработки можно содержание небольшого пакетного файла записать в одной строке и выполнить полученную составную команду.

Используя символ амперсанда &, можно разделить несколько утилит в одной командной строке, при этом они будут выполняться друг за другом. Например, если набрать команду DIR & PAUSE & COPY /? и нажать клавишу <Enter>, то вначале на экран будет выведено содержимое текущего каталога, а после нажатия любой клавиши — встроенная справка команды COPY.

Символ ^ позволяет использовать командные символы как текст, то есть при этом происходит игнорирование значения специальных символов. Например, если ввести в командной строке

Чем опасно


Здравствуйте, друзья. В последнее время вы меня часто спрашиваете, как объединить txt файлы в один. О том на сон грядущий и поговорим (не знаю, как у вас, а у меня за окном уже стемнело). Вдохновившись, я подобрал для вас несколько самых простых и действенных способов для Windows и прочих операционных систем.

Конкатенация

Среди огромного количества поступивших на данную тему обращений имелся и вопрос: «что такое конкатенация текстовых файлов?» Конкатенация (звучит загадочно, правда) – это не что иное, как объединение нескольких документов заданного формата в один, то есть последовательный перенос содержимого всех документов в один с расположением непосредственно друг за другом.

Представьте, у вас имеется много txt файлов (чтобы вникнуть в суть рассмотрим на примере 3):

  1. В первом написано МАМА.
  2. Во втором – ПАПА.
  3. А в третьем – Я.

После проведения конкатенации вы получите всего один документ с текстом МАМАПАПАЯ, что и является сутью всего процесса. Конечно, правильно подобранные решения достижения поставленных целей подразумевают возможность добавления между добавленными фрагментами разделителей – пробелов или строк.

Возникает резонный вопрос «зачем это нужно?». Например, объединить главы, расположенные в отдельных файлах, в одну книгу. Или собрать ежемесячные отчёты в один годовой. Ситуаций может быть бесчисленное множество.

Windows

Сначала расскажу, как объединить несколько имеющихся файлов txt в один в родном и привычном многим Windows. Затем кратко остановимся на решениях и для некоторых других ОС. Итак, в системе, рождённой корпорацией «Майкрософт», есть несколько способов быстро соединить все заданные файлы-кусочки в один целый текстовый «пирог».

Онлайн-сервисы

Самый беспроблемный способ объединить требуемые файлы формата txt в один файл, на мой взгляд, это воспользоваться одним из многочисленных онлайн-сервисов. Мной опробован и положительно оценён ресурс Filesmerge, функционал которого позволяет склеивать не только «текстовики», но и JPG, PDF, Word и Excel-файлы. А уж txt-пироги можно получить не только из исходников того же формата, но и из text, lst, log, euc, me, err, ans, dsc, asc и eml-кусочков (мог пару форматов пропустить). Для объединения нужно:

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


Bat-файл

Предложения онлайн-сервисов хотя и соблазняют своей простотой, но для меня они не интересны, так как я предпочитаю решать задачи своими силами. В данном случае мне интереснее объединить разрозненные txt-файлы в один общий посредством создания bat-файла с соответствующей командой. Например, так:




  1. Создаём ещё один текстовый файл (назову его 9.txt) посредством стандартного средства Windows под названием «Блокнот».


copy /b 1.txt + 2.txt ITOG.txt


    1. Через «Файл» сохраняем документ как 9.bat.


    1. Закрываем «Блокнот» и видим, что в папке появился «батник» с именем 9.bat.


    1. Запускаем его и пожинаем плоды в виде исчезнувшего 9.txt и появившегося ITOG.txt.


    1. Раскрываем ITOG.txt и обнаруживаем слияние двух текстов МАМАПАПА.


    Скрипт, написанный нами, командует системе выполнить задание из 9.txt, а именно сложить содержимое 1 и 2.txt, записать его в ITOG.txt, а 9.txt удалить по завершении.

    Слияние файлов через bat-документы довольно простое и интересное занятие, если знать команды для скриптов. Возможны такие варианты написания:



    Открыв final.txt, полученный по последнему скрипту, мы с вами увидим содержимое исходников, написанное столбиком.


    Уверен, что профи в данной области могли бы написать множество скриптов, но тех, что я привёл уже вполне достаточно для достижения цели.

    Командная строка

    Любителям «командовать» системе однозначно будет интересно, как соединить всё те же текстовые (txt) файлы при помощи командной строки. Хочу отдельно отметить (для тех кто спрашивал), MS DOS – это внутренняя среда «Виндовс» и все действия в ней выполняются через командную строку (означает, такой способ подходит и для вас тоже). Для того чтобы объединить txt файлы в один необходимо запустить окно той самой строки, набрав в «Выполнить» (найдётся в «Пуске») сочетание cmd.


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


    Команда простая, она включает в себя ДЕЙСТВИЕ ПУТЬ К 1 ФАЙЛУ + ПУТЬ КО 2 ФАЙЛУ ПУТЬ К РЕЗУЛЬТАТУ. У меня файлы 1 и 2.txt находятся на диске E, туда же хочу поместить и результат, поэтому пишем copy E:\1.txt + E:\2.txt E:\3.txt


    Для подтверждения действия нажимаем на Enter и видим отчёт об удачном выполнении задания.


    Для проверки результата я зайду на диск E, а вы по тому пути, который указали в команде. В итоге я увидел новый документ 3.txt, а в нём объединённое содержимое заданных файлов. А у вас получилось? (напишите в комментариях).

    Друзья, если вы предпочитаете работать в Powershell, то и там вы легко сможете объединить текстовые файлы той же командой, но с небольшим добавлением cmd /c copy E:\1.txt + E:\2.txt E:\3.txt


    После подтверждения действия «Энтером» результат не заставит себя долго ждать.


    Программы

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

    Менеджеры

    1. Выделить первый «кусочек» в папке.
    2. Зайти в меню «Файл» и запустить действие «Собрать…» (в старых версиях «Склеить»).
    3. Указать путь к будущему «пирогу» и нажать OK.


    Мне больше по душе Far Manager, поэтому дальше я расскажу, как объединить файлы в нём. Чтобы склеить файлы при помощи менеджера Far, нужно:

    1. Выделить исходники.
    2. Нажать клавишу F5.
    3. Придумать и написать имя будущего документа.
    4. Из списка существующих файлов выбрать значение «Добавить».
    5. Подтвердить клавишей Enter.


    Программы

    Друзья, для начала коротко о Notepad ++, в нём также можно объединить файлы, но для этого придётся установить специальный плагин Combine. Он позволит склеить выбранные «кусочки», добавить им имена и вставить между ними строки.


    Много хорошего могу сказать о программе TXTcollector. Она помогает комфортно добиться желаемого, но её придётся инсталлировать на ПК, после чего останется запрятать все «кусочки» в одну директорию, указать в программе путь к той папке, задать имя будущего «пирога» и место его сохранения, настроить наличие разделений (чёрточки или другие символы) и нажать кнопку Combine… для старта склеивания.


    Ещё могу отметить программы File Joiner и WinMerge (тот же принцип), причём последняя позволяет не только склеить файлы, но и сравнить их содержимое.

    Другие ОС

    Как и обещал, коротко остановимся на слиянии текстовых файлов и в других операционных системах, например, для Mac OC мне известна программа DiffMerge, позволяющая также и сравнивать и объединять документы. А ещё в той же ОС несколько маленьких файлов превратить в один большой можно посредством использования утилиты textutil (запускается через терминал) и команды cat.

    Объединить разрозненные txt файлы в один общий можно и в Linux. Происходит это примерно тем же образом, что и через командную строку в Windows. Только в Linux «исполнитель» команд зовётся «Терминал», а в него нужно вписать словосочетание cat имя1 имя2…имена всех имя выходного документа. Если адаптировать к нашему случаю, то получится примерно так cat 1.txt 2.txt itog.txt.

    Повествование получилось довольно длинным, но надеюсь, полезным. До свидания.

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

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

    Я заметил, что more имеет +n возможность указать начальную линию, но мне не удалось объединить их, чтобы получить желаемый результат. Я знаю, что это может быть невозможно в Windows, и я всегда могу редактировать.txt вручную, чтобы избавиться от строки, но есть ли простой способ сделать это из командной строки?

    или вы можете использовать copy . Смотрите copy /? дополнительные.

    Я использую это, и это работает хорошо для меня:

    TYPE \Server\Share\Folder\*.csv >> C:\Folder\ConcatenatedFile.csv

    конечно, перед каждым запуском, вы должны DELETE C:\Folder\ConcatenatedFile.csv

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

    у меня не хватает очков репутации, чтобы прокомментировать рекомендацию использовать *.csv >> ConcatenatedFile.csv , но я могу добавить предупреждение:

    при создании ConcatenatedFile.csv файл в том же каталоге, который вы используете для конкатенации он будет добавлен к себе.

    Я бы поставил это в комментарии к ghostdog74, за исключением того, что моя репутация слишком низкая, так что здесь идет.

    more +2 file2.txt > temp
    Этот код фактически игнорирует строки 1 и 2 файла. OP хочет сохранить все строки из первого файла (чтобы сохранить строку заголовка), а затем исключить первую строку (предположительно ту же строку заголовка) во втором файле, поэтому для исключения только строки заголовка OP должен использовать more +1 .

    type temp file1.txt > out.txt

    Неясно, какой порядок вытекает из этого кода. Это temp добавляется file1.txt (желаемое), или file1.txt добавляется temp (нежелательно, так как строка заголовка будет похоронена в середине результирующего файла).

    Кроме того, эти операции занимают очень много времени с большими файлами (например, 300 МБ)

    Я знаю, что вы сказали, что не можете установить какое-либо программное обеспечение, но я не уверен, насколько сильно это ограничение. В любом случае, у меня была та же проблема (попытка объединить два файла с предположительно одинаковыми заголовками), и я подумал, что предоставлю альтернативный ответ для других, кто придет на эту страницу, так как он отлично работал для меня.

    попробовав целую кучу команд в windows и сильно расстроившись, а также попробовав всевозможные графические редакторы, которые обещали быть в состоянии чтобы открыть большие файлы, но потом не смог, я, наконец, вернулся к своим корням Linux и открыл приглашение Cygwin. Две команды:

    на file1.csv 800 МБ и file2.csv 400 МБ, эти две команды заняли менее 5 секунд на моей машине. В подсказке Cygwin, не меньше. Я думал, что команды Linux должны быть медленными в Cygwin, но этот подход потребовал гораздо меньше усилий и был намного проще, чем любой подход windows, который я мог найти.

    Полный список команд можно вывести набрав HELP в командной строке.

    Команда CD

    Текущий каталог можно изменить с помощью команды

    Путь к требуемому каталогу указывается с учетом приведенных выше замечаний. Например, команда CD \ выполняет переход в корневой каталог текущего диска. Если запустить команду CD без параметров, то на экран будут выведены имена текущего диска и каталога.

    Команда COPY

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

    Синтаксис этой команды:

    Краткое описание параметров и ключей команды COPY приведено в таблице.

    Таблица 1.1. Параметры и ключи команды COPY

    Параметр

    Описание

    Имя копируемого файла или файлов

    Файл является текстовым файлом ASCII, то есть конец файла обозначается символом с кодом ASCII 26 (<Ctrl>+<Z>)

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

    Каталог для размещения результата копирования и/или имя создаваемого файла

    Проверка правильности копирования путем сравнения файлов после копирования

    Отключение режима запроса подтверждения на замену файлов

    Включение режима запроса подтверждения на замену файлов

    Приведем примеры использования команды COPY.

    Копирование файла abc.txt из текущего каталога в каталог D:\PROGRAM под тем же именем:

    Копирование файла abc.txt из текущего каталога в каталог D:\PROGRAM под новым именем def.txt:

    Копирование всех файлов с расширением txt с диска A: в каталог 'Мои документы' на диске C:

    Если не задать в команде целевой файл, то команда COPY создаст копию файла-источника с тем же именем, датой и временем создания, что и исходный файл, и поместит новую копию в текущий каталог на текущем диске. Например, для того, чтобы скопировать все файлы из корневого каталога диска A: в текущий каталог, достаточно выполнить такую краткую команду:

    В качестве источника или результата при копировании можно указывать имена не только файлов, но и устройств компьютера. Например, для того, чтобы распечатать файл abc.txt на принтере, можно воспользоваться командой копирования этого файла на устройство PRN: COPY abc.txt PRN

    Другой интересный пример: создадим новый текстовый файл и запишем в него информацию, без использования текстового редактора. Для этого достаточно ввести команду COPY CON my.txt, которая будет копировать то, что вы набираете на клавиатуре, в файл my.txt (если этот файл существовал, то он перезапишется, иначе — создастся). Для завершения ввода необходимо ввести символ конца файла, то есть нажать клавиши <Ctrl>+<Z>.

    Команда COPY может также объединять (склеивать) нескольких файлов в один. Для этого необходимо указать единственный результирующий файл и несколько исходных. Это достигается путем использования групповых знаков (? и *) или формата файл1 + файл2 + файл3. Например, для объединения файлов 1.txt и 2.txt в файл 3.txt можно задать следующую команду:

    Объединение всех файлов с расширением dat из текущего каталога в один файл all.dat может быть произведено так:

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

    Если имя целевого файла совпадает с именем одного из копируемых файлов (кроме первого), то исходное содержимое целевого файла теряется. Если имя целевого файла опущено, то в его качестве используется первый файл из списка. Например, команда COPY 1.txt+2.txt добавит к содержимому файла 1.txt содержимое файла 2.txt. Командой COPY можно воспользоваться и для присвоения какому-либо файлу текущей даты и времени без модификации его содержимого. Для этого нужно ввести команду типа

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

    Команда COPY имеет и свои недостатки. Например, с ее помощью нельзя копировать скрытые и системные файлы, файлы нулевой длины, файлы из подкаталогов. Кроме того, если при копировании группы файлов COPY встретит файл, который в данный момент нельзя скопировать (например, он занят другим приложением), то процесс копирования полностью прервется, и остальные файлы не будут скопированы.

    Команда XCOPY

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

    Синтаксис этой команды:

    Команда XCOPY имеет множество ключей, мы коснемся лишь некоторых из них. Ключ /D[:[дата]] позволяет копировать только файлы, измененные не ранее указанной даты. Если параметр дата не указан, то копирование будет производиться только если источник новее результата. Например, команда

    скопирует в каталог 'D:\BACKUP\Мои документы' только те файлы из каталога 'C:\Мои документы', которые были изменены со времени последнего подобного копирования или которых вообще не было в 'D:\BACKUP\Мои документы'.

    Ключ /S позволяет копировать все непустые подкаталоги в каталоге-источнике. С помощью же ключа /E можно копировать вообще все подкаталоги, включая и пустые.

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

    Ключ /I важен для случая, когда копируются несколько файлов, а файл назначения отсутствует. При задании этого ключа команда XCOPY считает, что файл назначения должен быть каталогом. Например, если задать ключ /I в команде копирования всех файлов с расширением txt из текущего каталога в несуществующий еще подкаталог TEXT,

    то подкаталог TEXT будет создан без дополнительных запросов.

    Ключи /Q, /F и /L отвечают за режим отображения при копировании. При задании ключа /Q имена файлов при копировании не отображаются, ключа /F — отображаются полные пути источника и результата. Ключ /L обозначает, что отображаются только файлы, которые должны быть скопированы (при этом само копирование не производится).

    С помощью ключа /H можно копировать скрытые и системные файлы, а с помощью ключа /R — заменять файлы с атрибутом "Только для чтения". Например, для копирования всех файлов из корневого каталога диска C: (включая системные и скрытые) в каталог SYS на диске D:, нужно ввести следующую команду:

    Ключ /T позволяет применять XCOPY для копирования только структуры каталогов источника, без дублирования находящихся в этих каталогах файлов, причем пустые каталоги и подкаталоги не включаются. Для того, чтобы все же включить пустые каталоги и подкаталоги, нужно использовать комбинацию ключей /T /E.

    Используя XCOPY можно при копировании обновлять только уже существующие файлы (новые файлы при этом не записываются). Для этого применяется ключ /U. Например, если в каталоге C:\2 находились файлы a.txt и b.txt, а в каталоге C:\1 — файлы a.txt, b.txt, c.txt и d.txt, то после выполнения команды

    в каталоге C:\2 по-прежнему останутся лишь два файла a.txt и b.txt, содержимое которых будет заменено содержимым соответствующих файлов из каталога C:\1.Если с помощью XCOPY копировался файл с атрибутом "Только для чтения", то по умолчанию у файла-копии этот атрибут снимется. Для того, чтобы копировать не только данные, но и полностью атрибуты файла, необходимо использовать ключ /K.

    Ключи /Y и /-Y определяют, нужно ли запрашивать подтверждение перед заменой файлов при копировании. /Y означает, что такой запрос нужен, /-Y — не нужен.

    Команда DIR

    Еще одной очень полезной командой является DIR [диск:][путь][имя_файла] [ключи], которая используется для вывода информации о содержимом дисков и каталогов. Параметр [диск:][путь] задает диск и каталог, содержимое которого нужно вывести на экран. Параметр [имя_файла] задает файл или группу файлов, которые нужно включить в список. Например, команда

    выведет на экран все файлы с расширением bat в корневом каталоге диска C:. Если задать эту команду без параметров, то выводится метка диска и его серийный номер, имена (в коротком и длинном вариантах) файлов и подкаталогов, находящихся в текущем каталоге, а также дата и время их последней модификации. После этого выводится число файлов в каталоге, общий объем (в байтах), занимаемый файлами, и объем свободного пространства на диске. Например:

    С помощью ключей команды DIR можно задать различные режимы расположения, фильтрации и сортировки. Например, при использовании ключа /W перечень файлов выводится в широком формате с максимально возможным числом имен файлов или каталогов на каждой строке. Например:

    С помощью ключа /A[[:]атрибуты] можно вывести имена только тех каталогов и файлов, которые имеют заданные атрибуты (R — "Только чтение", A — "Архивный", S — "Системный", H — "Скрытый", префикс "–" имеет значение НЕ). Если ключ /A используется более чем с одним значением атрибута, будут выведены имена только тех файлов, у которых все атрибуты совпадают с заданными. Например, для вывода имен всех файлов в корневом каталоге диска C:, которые одновременно являются скрытыми и системными, можно задать команду

    а для вывода всех файлов, кроме скрытых — команду

    Отметим здесь, что атрибуту каталога соответствует буква D, то есть для того, чтобы, например, вывести список всех каталогов диска C:, нужно задать команду

    Ключ /O[[:]сортировка] задает порядок сортировки содержимого каталога при выводе его командой DIR. Если этот ключ опущен, DIR печатает имена файлов и каталогов в том порядке, в котором они содержатся в каталоге. Если ключ /O задан, а параметр сортировка не указан, то DIR выводит имена в алфавитном порядке. В параметре сортировка можно использовать следующие значения: N — по имени (алфавитная), S — по размеру (начиная с меньших), E — по расширению (алфавитная), D — по дате (начиная с более старых), A — по дате загрузки (начиная с более старых), G — начать список с каталогов. Префикс "–" означает обратный порядок. Если задается более одного значения порядка сортировки, файлы сортируются по первому критерию, затем по второму и т.д.

    Ключ /S означает вывод списка файлов из заданного каталога и его подкаталогов.

    Ключ /B перечисляет только названия каталогов и имена файлов (в длинном формате) по одному на строку, включая расширение. При этом выводится только основная информация, без итоговой. Например:

    Команды MKDIR и RMDIR

    Для создания нового каталога и удаления уже существующего пустого каталога используются команды MKDIR [диск:]путь и RMDIR [диск:]путь [ключи] соответственно (или их короткие аналоги MD и RD). Например:

    Команда MKDIR не может быть выполнена, если каталог или файл с заданным именем уже существует. Команда RMDIR не будет выполнена, если удаляемый каталог не пустой.

    Команда DEL

    Удалить один или несколько файлов можно с помощью команды

    Для удаления сразу нескольких файлов используются групповые знаки ? и *. Ключ /S позволяет удалить указанные файлы из всех подкаталогов, ключ /F – принудительно удалить файлы, доступные только для чтения, ключ /A[[:]атрибуты] – отбирать файлы для удаления по атрибутам (аналогично ключу /A[[:]атрибуты] в команде DIR).

    Команда REN

    Переименовать файлы и каталоги можно с помощью команды RENAME (REN). Синтаксис этой команды имеет следующий вид:

    Здесь параметр каталог1|файл1 определяет название каталога/файла, которое нужно изменить, а каталог2|файл2 задает новое название каталога/файла. В любом параметре команды REN можно использовать групповые символы ? и *. При этом представленные шаблонами символы в параметре файл2 будут идентичны соответствующим символам в параметре файл1. Например, чтобы изменить у всех файлов с расширением txt в текущей директории расширение на doc, нужно ввести такую команду:

    Команда MOVE

    Синтаксис команды для перемещения одного или более файлов имеет вид:

    Синтаксис команды для переименования папки имеет вид:

    Здесь параметр результирующий_файл задает новое размещение файла и может включать имя диска, двоеточие, имя каталога, либо их сочетание. Если перемещается только один файл, допускается указать его новое имя. Это позволяет сразу переместить и переименовать файл. Например,

    Если указан ключ /-Y, то при создании каталогов и замене файлов будет выдаваться запрос на подтверждение. Ключ /Y отменяет выдачу такого запроса.

    Существует ли метод командной строки Windows для объединения этих файлов в один файл?

    Я не хочу вводить имя всех файлов.

    какую версию DOS вы используете? :) давай, дайте нам больше информации, какие типы файлов . вы, очевидно, ищете способ объединить эти файлы. DOS в ОС на базе Windows NT (NT, 2000 и все, начиная с XP) на самом деле не DOS, это командная оболочка под названием «cmd.exe». удалены теги DOS, чтобы отразить это. извини за это, я правда этого не знал. Я думал как DOS К счастью, последние остатки DOS умерли с Windows ME. :) но не стоит беспокоиться - большинство все еще называет командную строку Windows «DOS», так что это не так , просто неточно . так как реальный DOS все еще используется иногда, я очищаю тег DOS, чтобы быть просто реальными вопросами DOS.

    Я не хочу вводить имя всех файлов.

    Этого легко избежать. Откройте командную строку в этой папке и введите следующую команду:

    Теперь все текстовые файлы в этой папке, упорядоченные по возрастанию даты, будут объединены в один файл с именем newfile.txt.

    Моя конечная цель - хранить содержимое каждого текстового файла в отдельном столбце листа Excel.

    Вот учебник, который может помочь вам достичь вашей «конечной цели»:

    Можно ли вставлять символ новой строки после каждого файла какие другие варианты. Моя конечная цель - хранить содержимое каждого текстового файла в отдельном столбце таблицы Excel. ЛЮБЫЕ идеи @Mirage - обновил мой ответ согласно вашему комментарию. Но проблема в том, как я могу добавить символ конца строки в каждый текстовый файл. В настоящее время некоторые файлы текста находятся в одном параграфе в объединенном файле, поэтому Excel поместил их в один столбец. ИЛИ если я могу сначала добавить какой-нибудь символ конца строки ко всем файлам, а затем выполнить операцию слияния

    Чтобы добавить newLine в конце каждого объединенного файла, используйте type вместо copy :

    ВНИМАНИЕ: Когда вы используете тип * .txt> newfile.txt , текст дублируется. Это отличный ответ для объединения файлов журналов или других вещей, которые вы будете анализировать в будущем. Конкретно тот факт, что вы можете обойтись type x.log.* > merged.log без командного файла. С новыми линиями довольно легко иметь дело. Вау, type прошел долгий путь после DOS 3.3. Я не знал, что вы можете использовать маски файлов. Когда это произошло?

    Предполагая, что вы говорите о добавлении текстовых файлов, copy команда может использоваться для их добавления:

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

    Для двоичных файлов добавьте /b опцию ' ':

    Это предполагает, что вы знаете, что двоичные файлы, с которыми вы работаете, могут быть добавлены последовательно; если нет, вы получите кучу бесполезных данных.

    Читайте также: