使用复制命令按数字顺序合并文件的批处理脚本
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
以激活它。
如果有人能帮我解决这个问题,我将不胜感激。
我需要一个动态批处理脚本,它可以对任意数量的文件执行以下命令:
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
以激活它。