Batch file 使用copy命令以数字顺序合并文件的批处理脚本
如果有人能帮我这个请求,我将不胜感激 我需要一个动态批处理脚本,它可以对任意数量的文件执行以下命令:Batch file 使用copy命令以数字顺序合并文件的批处理脚本,batch-file,cmd,copy,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命令 我找
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-loop示例都是在线使用的类型,这不适合我试图实现的目标
非常感谢你的帮助 尝试以下脚本:
@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
以激活它。您很快就会发现批处理文件中列出的文件不会按数字顺序排序。文件将显示为1.txt 10.txt 2.txt等。。。。。您将需要一个额外的实用程序来按您想要的顺序获取文件。我建议您使用Dave Benham的JSORT实用程序@壁球人:你可能是对的……Dostips.com上还有一个SORTN.BAT实用程序。同样,您需要将DIR命令的结果通过管道传输到此批处理文件,然后捕获输出以生成copy命令。请注意,像这样的命令行的长度是有限的,8192字节,我认为。。。另一件事:是否有带前导零的.txt
文件,如01.txt
?谢谢,但这仍然不能按正确的顺序工作。它仍按以下顺序合并:3.txt 4.txt 2.txt 1。txt@binaryfinary:太尴尬了,我错过了包含排序标志。。。修正了这个问题。然而,如果你的文件上升到2位数,你会看到Squashman已经暗示的问题…你太棒了!完全按照需要工作。非常感谢。