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

Batch script to merge files using copy command in numerical order

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

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

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,这不适合我要实现的目标。

非常感谢您的帮助!

尝试以下脚本:

@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!

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