2010-08-05 20 views
34

我有一個目錄中有50到60個文件,我需要定期連接到一個文件中。需要在一個目錄中結合大量文件

我想過使用記事本++認爲有可能是一個插件,但將無法找到一個插件。

還有其他想法嗎?

+0

您使用的Windows或Linux操作系統?如果Windows,那麼你是否安裝了PowerShell? – 2010-08-05 19:46:46

+0

如果你不想這個問題關閉,你最好編輯它來問:「我如何編寫一個程序來按預定的時間間隔合併文件」。我們可以輕鬆地幫助您編寫一個小應用來執行此操作(批處理,vb腳本,.net等)......但是如果您需要任何建議,則需要將問題移至http://superuser.com使用第三方應用程序爲您完成這項工作。 – 2010-08-05 19:48:04

+0

將文件連接成可讀的文件,或僅用於存檔目的?我個人經常將大量JPG圖像拼接成一個ZIP文件,不使用壓縮,以便於傳輸和長期存儲。但是如果你需要編程幫助,你應該指出什麼類型的文件,什麼操作系統,並給出一些更多的細節。 – JYelton 2010-08-05 19:53:32

回答

70

假設這些是文本文件(因爲您使用的是記事本++)並且您在Windows上,您可以設計一個簡單的批處理腳本來將它們連接在一起。

例如,在所有的文本文件的目錄,執行以下命令:

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

這將合併所有匹配的文件* .TXT到名爲combined.txt一個文件。

欲瞭解更多信息:

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

+0

請注意,我可能不會爲非常大或非常多的文件執行此操作。 – JYelton 2010-08-05 19:58:13

+1

如果您想要將大量BOM(字節順序標記)插入到已整合文件中(您可能不需要!) – Darragh 2011-07-27 11:55:22

+0

這完全取決於所連接文件的性質和編碼。材料清單在UTF8中是可選的,儘管一些Windows應用程序以將這三個字節添加到文件開頭而聞名,但Windows 7記事本並不如此。但是,如果它們存在並引起問題,請在此處進行說明:http://www.heikniemi.net/hardcoded/2009/12/utf-8-preamble-is-a-problem-when-you-concatenate-文件/ – JYelton 2011-07-27 15:01:19

59

使用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

謝謝你的邀請,我學到新的東西!

+2

完全不需要PowerShell腳本。學到了新東西。謝謝。 – 2010-08-05 19:54:21

+3

你也可以指定順序,根據幫助說明: 複製file1.txt + file2.txt + file3.txt destination.txt – dwerner 2010-08-05 20:01:56

+1

這個(相同的答案?!)將(也)屠夫例如utf8編碼成許多字符的不可接受的ANSI替代品。 – 2016-01-07 01:45:12

1

你可以使用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

沒有爲我工作,必須改變它像這樣(在每個文件後添加換行符):'foreach($ Get-ChildItem -path'C:\ temp \ EXEMPLES_TEST'中的文件){ $ content = Get -Content -Path $ file.fullname $ content = $ content + [Environment] :: NewLine $ content | Out-File'C:\ temp \ EXEMPLES_TEST \ combined.txt'-append }' – 2015-04-02 09:50:12

0

有一個名爲方便的第三方工具FileMenu工具,給出了幾個右擊工具作爲Windows資源管理器擴展。

其中之一是分割文件/加入零件,但這並撤消你在尋找什麼。

http://www.lopesoft.com/en/filemenutools處檢查。 當然,它僅僅是windows,因爲Unix環境已經有很多工具可用。

11
copy *.txt all.txt 

這將文件夾的所有文本文件串聯到一個文本文件的全部.txt

如果您有任何其他類型的文件,像SQL文件

copy *.sql all.sql 
+2

這會讓屠夫例如utf8編碼成許多字符的不可接受的ANSI替代品。 – 2016-01-07 01:44:25

0

我知道這是一箇舊帖子,但我找到了它,然後找到了一個建議Total Mail Converter的人。我能夠將2k .msg文件的文件夾轉換爲.txt文件。它也可以讓你轉換成PDF和其他流行的格式。

這是一個很棒的工具,我很高興有人建議,因爲它會爲我節省幾天時間。

僅供參考 - 我的項目是結合。msg文件合併爲一個文本文件,以便我可以運行腳本從文件中提取某些信息(即:電子郵件和鏈接)。而不是2k文件,我可以使用一個。

0

在windows中,我在一個批處理文件中使用了一個簡單的命令,並使用一個計劃任務將所有信息保存在一個文件中。一定要選擇另一個路徑到結果文件,否則你將有重複的數據。

PathToOriginalFiles \ *。擴展> AnotherPathToResultFile \ NameOfTheResultFile.Extension

如果您需要加入大量的CSV文件,一個很好的事情是有頭只在一個文件中有名稱如0header.csv或其他名稱,這樣它就會成爲列表中的第一個文件,並確保將所有其他csv文件編程爲不包含標題。

4

是的,一個插件可以命名爲「結合」的記事本+ +鏈接:>>Combine Plugin for Notepad++

你可以通過插件管理器來安裝它。這個插件的額外好處是:「您可以在合併時保持文件的順序,這是根據打開文件的順序打開(請參閱標籤)」。

0

我用的Windows PowerShell此腳本:

ForEach ($f in get-ChildItem *.sql) { type "$f" >> all.sql } 
相關問題