使用copy命令按数字顺序合并文件的批处理脚本

时间:2015-11-20 13:41:59

标签: batch-file cmd copy

如果有人能帮我解决这个问题,我将不胜感激。

我需要一个动态批处理脚本,可以对任意数量的文件执行以下命令

Copy 1.txt + 2.txt + 3.txt + 4.txt newfile.txt

问题是,如果我有以下文件:

的1.txt

2.txt

3.txt

......等等

我尝试:Copy *.txt newfile.txt合并时它没有正确排序。

它实际上最终会这样做:Copy 3.txt + 4.txt + 2.txt + 1.txt newfile.txt

另外,我需要它使用 copy 命令而不是type命令。

我无法找到一种正确的方法,因为大多数FOR循环示例在线使用TYPE,但这并不适合我想要实现的目标。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

尝试以下脚本:

@ECHO OFF
SETLOCAL EnableDelayedExpansion
SET _cmd=COPY
FOR /F %%G IN ( 'DIR /O:N /B *.txt' ) DO (
    SET _cmd=!_cmd! %%G +
)
SET _cmd=!_cmd:~0,-2! newfile.txt
ECHO !_cmd!

脚本是"惰性"因为它输出完成的命令行,但实际上并没有发出它。删除最后一行的ECHO以激活它。