0

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

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

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

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

  • 标题_1
  • 标题_2
  • 标题_3
  • 标题_4
  • 标题_5

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

  • 第1条
  • 文章_2
  • 文章_3
  • 文章_4
  • 文章_5

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

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

4

1 回答 1

0

在 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++,特别是如果你正在处理大量的文件。


编辑
我测试了这个脚本,并且从生成标题和文章文件的初始测试脚本每秒生成略多于 550 个文件/秒。

于 2020-01-27T09:09:40.997 回答