今天早上朋友发我一篇小说(42个TXT文件),让我给他合并为一个文件。我首先想到的是“Copy”命令,它可以复制文件,也可以合并文件。
例如:合并1.txt和2.txt到12.txt(其为ASCII文本文件则使用“/a”,二进制文件使用“/b”)
copy 1.txt /a + 2.txt /a 12.txt
但是这并不能满足让我一下合并42个文件的需求,这不是一个“TXT文件”而且还是ASCII文本文件么?直接用“Type”命令,然后重定向到一个文件不就OK了。于是将cmd的当前路径改为小说所在目录,用一条命令就解决了:
请注意:txt文件排序正常(01、02、03……99),才能简单的用“*.txt”来表示文件名。
type *.txt>>..\小说.txt
对于文件名为1.txt,2.txt,3.txt……10.txt、11.txt……20.txt,21.txt……这种的,上面的命令可就会出错了。因为它会排序成“1.txt,10.txt,11.txt……2.txt,20.txt,21.txt……”,对此,我想出的策略是:要么修改文件名称,要么用“For”命令来解决。
“For”命令解决方案:(注意,此命令是直接在“命令提示符”窗口输入的,所以使用“%i”,用批处理文件应使用“%%i”)
for /l %i (1 1 42) do type %i.txt>>..\小说.txt
时间: 2024-10-07 08:22:13