循环批处理文件,用于将来自不同文件夹的多个文本文件合并到另一个不同文件夹中的一个文本文件

Posted

技术标签:

【中文标题】循环批处理文件,用于将来自不同文件夹的多个文本文件合并到另一个不同文件夹中的一个文本文件【英文标题】:Looping batch file for Merging several text files from different folders to one text file in another different folder 【发布时间】:2021-01-25 21:37:06 【问题描述】:

我正在尝试按如下方式合并文本文件:

NEWS.txt 在“NEWS”文件夹中。 “PGM”文件夹中的 CINEMA.txt。 PGM 文件夹中的 COMM.txt。

所有文本文件都是 Unicode 格式,必须合并到

“组合滚动”文件夹中的 CINEMA-SCROLL.txt。

我尝试了以下代码但不起作用:

@echo off
D:\MEDIA\GRAPHICS\NAS TICKER\ >For %%f in (PGM\CINEMA.txt   NEWS\NEWS.txt   PGM\COMM.txt) do type "%%~f" > "COMBINED SCROLL\CINEMA-SCROLL.txt"

而且我不能循环它,如果它改变了合并文件中的任何内容,它会自动更改合并文件中的所有内容。

【问题讨论】:

您提供的“已尝试”代码似乎是在命令提示符处输入的命令,而不是批处理文件中的一行,或者是在带有 echoing 的批处理文件中运行它的输出离开。由于您使用了 [batch-file] 标记,我们希望看到您在该批处理文件中使用的实际行。 伙计!这是一个批处理文件,我只是没有使用 echo off 功能。 不,你完全错了扎希德。当您从带有echo 关闭的批处理文件中使用它时,输出将包含提示符(在您的情况下为D:\MEDIA\GRAPHICS\NAS TICKER,您在该窗口中看到的是@987654327 @,不是D:\MEDIA\GRAPHICS\NAS TICKER\ >For %%f in (PGM\CINEMA.txt NEWS\NEWS.txt PGM\COMM.txt) do type "%%~f" > "COMBINED SCROLL\CINEMA-SCROLL.txt"。您发布的内容既不是批处理文件的内容,也不是命令提示符的输出! 好的!你能不能把它做成一个批处理文件..! 对不起,我看不到你的批处理文件,所以我无法edit your question并将实际内容粘贴到其中。 【参考方案1】:

从batch-file 或cmd,您可能可以使用Copy 命令,而不是使用带有TypeFor 循环。

例子:

Copy /Y /B "NEWS\NEWS.txt" + "PGM\CINEMA.txt" + "PGM\COMM.txt" "COMBINED SCROLL\CINEMA-SCROLL.txt"

【讨论】:

伙计!我需要一个循环批处理文件,以便在合并文本文件时有任何更新时它会自动更新合并的文本文件。 @Zahid,我不确定您所说的“在合并文本文件时有任何更新时自动更新组合文本文件”是什么意思。如果您希望一个文件自动包含其他三个文件的组合内容,那么除了基本循环之外,您还需要其他东西来监视每个文件的更改。由于您的问题代码没有尝试过这些事情,因此该部分将是题外话代码请求。我们只帮助您解决您自己的代码的问题,我们不会为您编写新代码来完成您自己没有尝试过的事情。 谢谢伙计!合并问题解决!但是我无法在合并文件中获取 unicode 字体,因为它在源文件中都是用 unicode bangla 字体编写的。我将如何在合并的文本文件中获取该字体? 谢谢伙计!所有的问题都解决了,我实现了我想做的……!你是明星……!!!【参考方案2】:
For %%f in (PGM\CINEMA.txt NEWS\NEWS.txt PGM\COMM.txt) do type "%%~f" >> "COMBINED SCROLL\CINEMA-SCROLL.txt"

注意>>,而不是> 来追加文件,但此命令会将新文件追加到任何已经存在的"COMBINED SCROLL\CINEMA-SCROLL.txt"

(For %%f in (PGM\CINEMA.txt NEWS\NEWS.txt PGM\COMM.txt) do type "%%~f" )> "COMBINED SCROLL\CINEMA-SCROLL.txt"

应该也可以,但是创建一个新文件。

【讨论】:

嗨,玛格!谢谢你的协助。但是由于这些都是 unicode 文本文件,我该如何让它工作? 谢谢伙计!合并问题解决!但是我无法在合并文件中获取 unicode 字体,因为它在源文件中都是用 unicode bangla 字体编写的。我将如何在合并的文本文件中获取该字体? 谢谢伙计!所有的问题都解决了,我实现了我想做的……!你是明星..!!!

以上是关于循环批处理文件,用于将来自不同文件夹的多个文本文件合并到另一个不同文件夹中的一个文本文件的主要内容,如果未能解决你的问题,请参考以下文章

输出文件的间距有问题 - 使用 itertools 产品循环使用来自两个不同文本文件的变量输出到第三个

批处理-循环文本文件[重复]

WINDOWS 批处理命COPY 合并多个文件的问题

将for循环的输出写入多个文件

Powershell循环将任何行存储在来自多个文件的变量中

Linux文本处理工具sed