需要在目录中组合大量文件

问题描述 投票:40回答:10

我在一个目录中有50到60个文件,我需要定期连接到一个文件中。

我想过使用notepad ++认为可能有一个插件可以帮助但却找不到它。

还有其他想法吗?

notepad++ concatenation
10个回答
81
投票

假设这些是文本文件(因为你使用的是notepad ++)并且你在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
投票

我在windows powershell上使用了这个脚本:

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

63
投票

使用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
投票
copy *.txt all.txt

这会将文件夹的所有文本文件连接到一个文本文件all.txt

如果您有任何其他类型的文件,如sql文件

copy *.sql all.sql

5
投票

是的,一个名为“combine”的插件可用于记事本++。链接:。>> Combine Plugin for Notepad++

您可以通过插件管理器安装它。这个插件的额外好处是:“你可以在合并时保持文件的顺序,它是根据打开的文件的顺序打开的(见标签)”。


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()

1
投票

在Windows中,我在批处理文件中使用一个简单的命令,我使用计划任务将所有信息保存在一个文件中。请务必选择结果文件的其他路径,否则您将拥有重复的数据。

类型PathToOriginalFiles \ *。扩展> AnotherPathToResultFile \ NameOfTheResultFile.Extension

如果你需要加入大量的csv文件,一件好事就是只在一个名为0header.csv或其他名称的文件中使用标题,这样它总是列表中的第一个文件,并且是一定要编程所有其他csv文件不包含标题。


1
投票

如果你喜欢在Notepad ++上打开文件,你可以使用Combine插件:http://www.scout-soft.com/combine/


0
投票

有一个方便的第三方工具名为FileMenu Tools,它提供了几个右键单击工具作为Windows资源管理器扩展。

其中一个是拆分文件/加入零件,它可以完全取消您要查找的内容。

http://www.lopesoft.com/en/filemenutools查看。当然,它只是windows,因为Unixes环境已经拥有了很多工具。


0
投票

我知道这是一个旧帖子,但我找到了它然后发现有人建议使用Total Mail Converter。我能够将带有2k .msg文件的文件夹转换为.txt。它还允许您转换为PDF和其他流行的格式。

这是一个伟大的工具,我很高兴有人建议,因为它将节省我几天。

仅供参考 - 我的项目是将.msg文件合并到一个文本文件中,以便我可以运行脚本从文件中提取某些信息(即:电子邮件和链接)。而不是2k文件,我可以使用一个。

© www.soinside.com 2019 - 2024. All rights reserved.