c++ - 将多个文本文件合并为一个

标签 c++ windows text-files command-prompt

我有一个包含数千个文本文件的目录。每个文本文件都有一行。为了合并它们,我在 Windows 的命令提示符中使用了 copy * aggregate.txt,但这些行已被复制,它们之间没有任何间距。

那么我该如何合并文件以分隔行呢?每次复制文件时插入一个换行符?

如果有办法在命令提示符或使用 Windows 批处理程序中完成,或者我可以通过编写 C++ 程序来完成,如果你能告诉我如何一个一个地读取目录中的所有文件。

最佳答案

这可能需要一段时间才能开始,因为涉及数千个文件 更改 d:\folder 并将批处理文件放在 d:\folder 以外的其他地方

@echo off    
pushd "d:\folder"
for /f "delims=" %%a in ('dir /b /a-d ') do (
type "%%a" >>aggregate.txt
echo.>>aggregate.txt
)
popd

或者应该立即开始的这个:

@echo off
pushd "d:\folder"
dir /b /a-d >"c:\file.tmp"
for /f "delims=" %%a in (c:\file.tmp) do (
type "%%a" >>aggregate.txt
echo.>>aggregate.txt
)
del "c:\file.tmp"
popd

关于c++ - 将多个文本文件合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17483946/

相关文章:

java - 在 Java 中使用递归时如何解决 StackOverflowError?

c++ - 在 Rcpp 中分配一个大型二维数组 NumericVectors

c++ - 使用 std::thread 和良好实践并行化循环

c++ - 为什么我不能在我的文本文件中搜索一个词?

c# - 检测应用程序的启动

c# - 使用已安装产品的升级代码获取产品版本

C++ 自定义迭代器类

java - Tomcat 不会在 Windows 中自动启动

c++ - 使用指定的分隔符逐行解析文本文件

unix - 批量替换文本文件中的文本(Linux/OSX 命令行)