Нужно объединить много файлов в каталоге - PullRequest
40 голосов
/ 05 августа 2010

У меня от 50 до 60 файлов в каталоге, которые мне нужно регулярно объединять в один файл.

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

Есть еще какие-нибудь мысли?

Ответы [ 10 ]

82 голосов
/ 05 августа 2010

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

Например, в каталоге со всем текстомфайлы, выполните следующее:

for %f in (*.txt) do type "%f" >> combined.txt

Это объединит все файлы, соответствующие * .txt, в один файл с именем комбинированный. текст.

Для получения дополнительной информации:

http://www.howtogeek.com/howto/keyboard-ninja/keyboard-ninja-concatenate-multiple-text-files-in-windows/

63 голосов
/ 05 августа 2010

Используйте команду Windows «Копировать».

C:\Users\dan>help copy
    Copies one or more files to another location.

    COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/L] [/A | /B ] source [/A | /B]
         [+ source [/A | /B] [+ ...]] [destination [/A | /B]]

      source       Specifies the file or files to be copied.
      /A           Indicates an ASCII text file.
      /B           Indicates a binary file.
      /D           Allow the destination file to be created decrypted
      destination  Specifies the directory and/or filename for the new file(s).
      /V           Verifies that new files are written correctly.
      /N           Uses short filename, if available, when copying a file with 
                   a non-8dot3 name.
      /Y           Suppresses prompting to confirm you want to overwrite an
                   existing destination file.
      /-Y          Causes prompting to confirm you want to overwrite an
                   existing destination file.
      /Z           Copies networked files in restartable mode.
      /L           If the source is a symbolic link, copy the link to the 
                   target
                   instead of the actual file the source link points to.

    The switch /Y may be preset in the COPYCMD environment variable.
    This may be overridden with /-Y on the command line.  Default is
    to prompt on overwrites unless COPY command is being executed from
    within a batch script.

    **To append files, specify a single file for destination, but 
    multiple files for source (using wildcards or file1+file2+file3 
    format).**

В вашем случае:

copy *.txt destination.txt

Объединит все файлы .txt в алфавитном порядке в destination.txt

Спасибо, что спросили, я узнал что-то новое!

11 голосов
/ 13 августа 2014
copy *.txt all.txt

Это объединит все текстовые файлы папки в один текстовый файл all.txt

Если у вас есть файлы других типов, например, sql-файлы

copy *.sql all.sql
6 голосов
/ 17 июля 2015

Да, доступен плагин с именем «объединить» для блокнота ++. Ссылка:. >> Плагин объединения для блокнота ++

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

1 голос
/ 09 июля 2015

Если вы хотите сделать это для открытых файлов в Notepad ++, вы можете использовать плагин Combine: http://www.scout -soft.com / объединить /

1 голос
/ 10 декабря 2014

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

type PathToOriginalFiles \ *. Extension > AnotherPathToResultFile \ NameOfTheResultFile.Extension

Если вам нужно объединить множество CSV-файлов, полезно сделать заголовок только в одном файле с именем, таким как 0header.csv или другим именем, чтобы оно всегда было быть первым файлом в списке и обязательно запрограммировать все остальные файлы CSV, чтобы они не содержали заголовок.

1 голос
/ 06 августа 2010

вы можете использовать скрипт PowerShell, как этот

$sb = new-object System.Text.StringBuilder

foreach ($file in Get-ChildItem -path 'C:\temp\xx\') {
    $content = Get-Content -Path $file.fullname
    $sb.Append($content)
}
Out-File -FilePath 'C:\temp\xx\c.txt' -InputObject $sb.toString()
0 голосов
/ 04 марта 2018

Я использовал этот скрипт на Windows PowerShell:

ForEach ($f in get-ChildItem *.sql) { type "$f" >> all.sql }
0 голосов
/ 19 ноября 2014

Я знаю, что это старый пост, но я нашел его, а затем нашел кого-то, кто предложил Total Mail Converter. Я смог преобразовать свою папку с 2k .msg файлами в .txt. Он также позволяет конвертировать в PDF и другие популярные форматы.

Это отличный инструмент, который я рад, что кто-то предложил, так как он спасет меня несколько дней.

FYI - Мой проект объединяет MSG-файлы в один текстовый файл, так что я могу запустить скрипт для извлечения определенной информации из файлов (например, электронной почты и ссылок) Вместо файлов 2k я могу работать с одним.

0 голосов
/ 12 января 2012

Существует удобный сторонний инструмент с именем FileMenu Tools , который предоставляет несколько инструментов для щелчка правой кнопкой мыши в качестве расширения Windows Explorer.

Одним из них является Split file / Join Parts , которая выполняет и отменяет именно то, что вы ищете.

Проверьте это на http://www.lopesoft.com/en/filemenutools. Конечно, это только окна, поскольку в среде Unixes уже естьмного инструментов для этого.

...