Arrays Windows批处理-将多个文本文件合并为一个。文本文件名存储在列表中
我是windows批处理的新手-我想使用windows批处理将多个文本文件连接成一个。要组合的文件在列表中指定,可以是动态的。我有一个单独的文件目录a.txt、b.txt、c.txt。。。。z、 txt。我需要将它们的一个子集连接到一个merged.txt文件中 例如,如果列表是输入列表 集合列表=a f z 然后我希望merged.txt包含a.text、f.txt和z.txt的内容。 我已经尝试过的想法是 1) 键入*.txt>merged.txt:-对我不起作用,因为这样会合并所有文本文件 2) 复制a.txt+f.txt+z.txt merged.txt:-但这将仅用于这一输入Arrays Windows批处理-将多个文本文件合并为一个。文本文件名存储在列表中,arrays,windows,batch-file,cmd,Arrays,Windows,Batch File,Cmd,我是windows批处理的新手-我想使用windows批处理将多个文本文件连接成一个。要组合的文件在列表中指定,可以是动态的。我有一个单独的文件目录a.txt、b.txt、c.txt。。。。z、 txt。我需要将它们的一个子集连接到一个merged.txt文件中 例如,如果列表是输入列表 集合列表=a f z 然后我希望merged.txt包含a.text、f.txt和z.txt的内容。 我已经尝试过的想法是 1) 键入*.txt>merged.txt:-对我不起作用,因为这样会合并所有文本文件
有人有什么想法吗?不确定如何调用批处理文件,因此这是悬而未决的问题 但我认为你已经接近了a.txt+f.txt+z.txt合并的副本 只需使用命令行参数动态构建该列表(最多可以有9个) 然后,将使用
merge-them.cmd a b c f
或者你可以设置一个变量,比如
mylist=a,b,c,f
然后FOR循环将引用%mylist%,而不是%*不确定如何调用批处理文件,因此这是悬而未决的 但我认为你已经接近了a.txt+f.txt+z.txt合并的副本 只需使用命令行参数动态构建该列表(最多可以有9个) 然后,将使用
merge-them.cmd a b c f
或者你可以设置一个变量,比如
mylist=a,b,c,f
然后FOR循环将引用%mylist%,而不是%*FOR命令用于处理列表:
set "list=a f z"
for %%a in (%list%) do type %%a.txt >>merged.txt
注意:%%a
是批处理文件语法。如果要直接在命令行上使用它,请改用%a
下面的速度更快(因为它只打开了目标文件一次),但是如果列表中只有几个条目,您不会注意到它(对于一个巨大的列表,这可能快几百倍):
for
命令用于处理列表:
set "list=a f z"
for %%a in (%list%) do type %%a.txt >>merged.txt
注意:%%a
是批处理文件语法。如果要直接在命令行上使用它,请改用%a
下面的速度更快(因为它只打开了目标文件一次),但是如果列表中只有几个条目,您不会注意到它(对于一个巨大的列表,这可能快几百倍):
这不是数组,而是列表(您甚至将其命名为
list
)<对于(%list%)中的%%a,请键入%%a.txt>>merged.txt@Stephan感谢您指出这一点。让我把它改成列表。你的解决方案确实对我有用。我不得不将%%a更改为%a(请参考)非常感谢!是-它在命令行上是%a
,但在批处理文件中是%a
。这不是数组,而是列表(您甚至将其命名为列表
)<对于(%list%)中的%%a,请键入%%a.txt>>merged.txt@Stephan感谢您指出这一点。让我把它改成列表。你的解决方案确实对我有用。我不得不将%%a更改为%a(请参考)非常感谢!是-在命令行上是%a
,但在批处理文件中是%a
。我尝试了您的解决方案。很好,您可以动态输入要合并的文件。但在我的例子中,我从另一个文件中读取了要合并的文件列表,所以Stephan的解决方案对我来说已经足够了。我尝试了你的解决方案。很好,您可以动态输入要合并的文件。但在我的例子中,我从另一个文件中读取了要合并的文件列表,因此Stephan的解决方案对我来说已经足够了。