使用 CMD 合并多个文件

使用 CMD 合并多个文件

我的目录中有很多 *.cpp 文件。我已使用以下命令成功合并文件,该命令是我从其中一个在线站点获取的。

for %f in (*.cpp) do type "%f" >> Merged.doc 

现在我有一个文件 (Merged.doc),其中包含我所有 .cpp 文件的内容。我想在合并时在每个 .cpp 的末尾添加空白页,或者希望将每个 .cpp 文件放在合并文件的不同页面中。

如下命令(来自另一个问题)。是否有类似于以下内容的命令:

type *.cpp > merged.doc

这里每个文件都从换行符开始,像这样它应该从新页面开始。

编辑

如果我需要在每个程序前添加四行文本怎么办。

假设我想在行中添加与每个文件关联的日期Date : DD-MM-YYYY以及文件名为:abcd.cpp(我不想要他的.cpp)。

我做了什么 :

 @echo off
 cd C:\programs
 echo ^<html^>^<head^>^<style^> pre {page-break-after: always;} ^</style^>^</head^>^<body^>      >merged.html
 for /r %%f in (*.cpp) do (
 echo ^<pre^>
 echo File Name        :(Here i want the date associated with each file without the extension .cpp) 
 echo File Description :
 echo Author           :Name
 echo Date             :(Here the date associated with each program)
 echo.
 type "%%f"
 echo ^</pre^>
 ) >>merged.html
 echo ^</body^>^</html^> >> merged.html

生成的文件有错误

#include 之后没有<isotream.h><conio.h><string.h><proccess.h>。但是我的原始程序文件全部可用。它没有整个程序,只有每个程序的一半在结果文件中。我是批处理脚本的新手。我的批处理文件有什么问题。

答案1

这应该可以解决问题:

@echo off
break>merged.cpp
for /r %%f in (*.cpp) do (
    type "%%f"
    for /l %%x in (1, 1, 100) do echo.
) >> merged.cpp

这是编写的,用于从批处理文件运行。如果你每次都输入它,那么你就是在浪费时间。将 100 更改为你想要的任意返回数。

更新

如果 HTML 没问题,那么使用这个:

@echo off
cd C:\test
echo ^<html^>^<head^>^<style^> pre {page-break-after: always;} ^</style^>^</head^>^<body^> >merged.html
for /r %%f in (*.txt) do (
    echo ^<pre^>
    echo See, this is easy!
    echo File Name: %%f
    echo Author: The Dude
    echo.
    type "%%f"
    echo ^</pre^>
) >> merged.html
echo ^</body^>^</html^> >> merged.html

更新 2

如果你想正确地将其导入 Word(无需购买 Acrobat 专业版),那么你只需要将文档打印为 PDF 文件。然后在 Word 中打开该 pdf 文件(就像打开文件一样*.doc)。只有按照我所解释的那样操作,Word 才会正确转换它(单击“打开”后,您应该会看到一个消息框,询问您是否要继续转换)。

哦,你问的关于在每个源文件前添加 4 行文本的问题表明你没有从我展示的内容中学到任何东西。再看看我回答的第一部分,好好猜一下如何做到这一点。

相关内容