Potrzeba połączenia wielu plików w katalogu

Mam od 50 do 60 plików w katalogu, które muszę regularnie łączyć w jeden plik.

Myślałem o użyciu notepad++ myśląc, że prawdopodobnie jest wtyczka, która pomoże, ale nie byłem w stanie znaleźć.

Jakieś inne myśli?

Author: tnriverfish, 2010-08-05

10 answers

Zakładając, że są to pliki tekstowe (ponieważ używasz notepad++) i że jesteś w systemie Windows, możesz stworzyć prosty skrypt wsadowy, aby je połączyć.

Na przykład w katalogu ze wszystkimi plikami tekstowymi wykonaj następujące polecenie:

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

Spowoduje scalenie wszystkich plików pasujących *.txt w jednym pliku o nazwie combined.txt.

Więcej informacja:

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

 77
Author: JYelton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-05 19:57:12

Użyj polecenia "Kopiuj" systemu 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).**

Więc w Twoim przypadku:

copy *.txt destination.txt

Połączy wszystkie .pliki txt w kolejności alfabetycznej do miejsca docelowego.txt

Dzięki za pytanie, nauczyłem się czegoś nowego!

 61
Author: dwerner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-23 17:13:03
copy *.txt all.txt

Spowoduje połączenie wszystkich plików tekstowych folderu w jeden plik tekstowy.txt

Jeśli masz inne pliki, takie jak pliki sql

copy *.sql all.sql
 11
Author: abhishek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-12 21:14:35

Tak, dostępna jest wtyczka o nazwie "combine" dla notepad++.Link:.> >Complete Plugin for Notepad++

Można go zainstalować za pomocą Menedżera wtyczek. Dodatkową zaletą tej wtyczki jest: "możesz zachować sekwencję plików podczas scalania, to zgodnie z sekwencją otwartych plików są otwierane (patrz zakładki)".

 5
Author: Monirul Alom Al-Amin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-17 20:29:45

Możesz użyć skryptu powershell w ten sposób

$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()
 1
Author: Iain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-05 20:04:13

W windows używam prostego polecenia w pliku wsadowym i używam zaplanowanego zadania, aby zachować wszystkie informacje w jednym pliku. Pamiętaj, aby wybrać inną ścieżkę do pliku wynikowego, w przeciwnym razie będziesz miał zduplikowane dane.

Type PathToOriginalFiles\*.Rozszerzenie > Kolejna Ścieżka Do Pliku Wyników\Nazwa Pliku Wyników.Rozszerzenie

Jeśli chcesz dołączyć wiele plików csv, dobrą rzeczą jest posiadanie nagłówka tylko w jednym pliku o nazwie 0header.csv , lub inna nazwa, więc zawsze będzie to pierwszy plik na liście i pamiętaj, aby zaprogramować wszystkie inne pliki csv, aby nie zawierały nagłówka.

 1
Author: Pedro Oliveira,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-10 11:55:38

Jeśli chcesz to zrobić dla otwartych plików na Notepad++, możesz użyć wtyczki Combine: http://www.scout-soft.com/combine/

 1
Author: vahid kh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-09 12:49:48

Istnieje wygodne narzędzie innej firmy o nazwie FileMenu Tools , które daje kilka narzędzi prawym przyciskiem myszy jako rozszerzenie Eksploratora windows.

Jednym z nich jest Split file / Join Parts , to robi i cofa dokładnie to, czego szukasz.

Sprawdź w http://www.lopesoft.com/en/filemenutools . Oczywiście jest to tylko windows, ponieważ środowiska Unixów mają już wiele narzędzi do tego.

 0
Author: PPC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-01 02:32:50

Wiem, że to stary post, ale znalazłem go i znalazłem kogoś, kto zasugerował Total Mail Converter. Udało mi się przekonwertować mój folder za pomocą 2k .pliki msg do .txt. Pozwala również na konwersję do formatu PDF i innych popularnych formatów.

To świetne narzędzie, które cieszę się, że ktoś zasugerował, ponieważ uratuje mi to kilka dni.

FYI - mój projekt łączy .pliki msg do jednego pliku tekstowego, dzięki czemu mogę uruchomić skrypt, aby wyodrębnić pewne informacje z plików (tj. linki). Zamiast plików 2k, mogę pracować z jednym.

 0
Author: Osensnolf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-19 16:56:34

Użyłem tego skryptu w windows powershell:

ForEach ($f in get-ChildItem *.sql) { type "$f" >> all.sql }
 0
Author: asoifer1879,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-04 02:50:47