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



我想为我的网站在wordpress中自动发布文章。我有以下文件:

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

C:>For %f in (in*.txt) do type %f >> Combined.txt

(包含 20.000 个标题的文件夹(

  • Title_1
  • Title_2
  • Title_3
  • Title_4
  • Title_5

(以及一个包含 20.000 篇文章的文件夹(

  • Article_1
  • Article_2
  • Article_3
  • Article_4
  • Article_5

这些数字与相应的文件相关联。这意味着标题 1 属于第 1 条,依此类推。

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

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

Parent Folder
|
|------------------|
|                  |
Titles             Articles

换句话说,将包含标题的文件夹和包含文章的文件夹放在同一文件夹的子目录中。这将允许您将此脚本保存在"父文件夹"中,这将使目录浏览更容易遵循。

@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 个生成的文本文件对此进行了测试。这是我的测试脚本(脚本也保存在"父文件夹"目录中(:

@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

快速说明:这可能值得使用更快的语言(如C++(进行,尤其是在处理大量文件时。


Edit
我测试了这个脚本,从生成标题和文章文件的初始测试脚本中每秒生成的文件略高于 550 个/秒。

相关内容

  • 没有找到相关文章

最新更新