Batch file 如何将多个.TXT文件批量合并为一个新的.TXT文件?

Batch file 如何将多个.TXT文件批量合并为一个新的.TXT文件?,batch-file,merge,automation,txtextcontrol,Batch File,Merge,Automation,Txtextcontrol,我想在wordpress中为我的客户自动发布文章。我喜欢以下文件: 这已经是windows CMD中的解决方案了吗 C:\>For %f in (in*.txt) do type %f >> Combined.txt (一个有20000个标题的文件夹) 标题1 标题2 标题3 标题4 标题5 (以及一个包含20000篇文章的文件夹) 第1条 第2条 第3条 第4条 第5条 这些编号与相应的文件相关联。这意味着标题1属于第1条,依此类推 如何按编号自动合并标题和文章编号

我想在wordpress中为我的客户自动发布文章。我喜欢以下文件:

这已经是windows CMD中的解决方案了吗

C:\>For %f in (in*.txt) do type %f >> Combined.txt
(一个有20000个标题的文件夹)

  • 标题1
  • 标题2
  • 标题3
  • 标题4
  • 标题5
(以及一个包含20000篇文章的文件夹)

  • 第1条
  • 第2条
  • 第3条
  • 第4条
  • 第5条
这些编号与相应的文件相关联。这意味着标题1属于第1条,依此类推


如何按编号自动合并标题和文章编号?

在CMD中有多种方法可以做到这一点。想到的第一种方法是使用for循环来运行文件总数。每次运行时,将标题文件的内容附加到“合并”文件,然后将文章文件的内容附加到同一文件。另外,我建议您使用如下文件结构:

父文件夹 | |------------------| | | 标题文章 换句话说,你的文件夹与你的标题和你的文件夹与你的文章子目录在同一个文件夹。这将允许您将此脚本保存在“父文件夹”中,这将使目录浏览更容易进行

@echo off
echo Starting...
setlocal EnableDelayedExpansion

REM Save the directory of "Parent Folder"
set parent_dir=!cd!
if not exist Merged md Merged

REM Initialize other directories
set titles_dir=!parent_dir!\Titles
set articles_dir=!parent_dir!\Articles
set merged_dir=!parent_dir!\Merged

REM However many files you have goes below
set NUMBER_OF_FILES=100
for /l %%a in (1, 1, !NUMBER_OF_FILES!) do (
    for /f "tokens=*" %%b in (!titles_dir!\Title_%%a.txt) do (
        echo.%%b>>!merged_dir!\Merged_%%a.txt
    )
    for /f "tokens=*" %%b in (!articles_dir!\Article_%%a.txt) do (
        echo.%%b>>!merged_dir!\Merged_%%a.txt
    )
)
echo Done
@echo on
就这样。你应该有完全合并的标题和文章。我用100个生成的文本文件对此进行了测试。这是我的测试脚本(脚本还保存在“父文件夹”目录中):

<> >快速注释:这可能是用更快的语言,如C++,特别是在使用大量文件时。
编辑
我测试了这个脚本,并从生成标题和文章文件的初始测试脚本中每秒生成了550多个文件。

Windows命令行
for%I in(“带标题的文件夹\Title\u*”)do@for/F“tokens=2 delims=“%J in(“%nI”)do copy/B“%I”+“带文章的文件夹\Article\u%J.ext”“包含合并文件的文件夹\Merged_uu%J.ext“>nul
可以生成您希望通过此命令行获取的文件。运行
for/?
并仔细阅读输出帮助,从第一页的顶部到最后一页的底部,再到下一页
copy/?
,并阅读输出帮助以了解此命令行的解释。@Mofi非常感谢,这正是我想要的。它工作得非常好!非常感谢你!!!
@echo off
echo Starting...
setlocal EnableDelayedExpansion
if not exist Titles md Titles
if not exist Articles md Articles

set parent_dir=!cd!
set titles_dir=!parent_dir!\Titles
set articles_dir=!parent_dir!\Articles

set NUMBER_OF_FILES=100
for /l %%a in (1, 1, !NUMBER_OF_FILES!) do (
    echo Title%%a>!titles_dir!\Title_%%a.txt
    echo ----->>!titles_dir!\Title_%%a.txt
    echo. >>!titles_dir!\Title_%%a.txt
    for /l %%b in (1, 1, 100) do (
        echo This is article number %%a>>!articles_dir!\Article_%%a.txt
    )
)
echo Done
@echo on