在MS DOS中将多个文件复制到一个文件中

28

我正在尝试使用MS DOS将一个包含多个.csv文件的文件夹中的所有文件和其中的信息合并到一个文件中。有什么建议吗?

7个回答

47
copy *.csv new.csv

不需要使用 /b,因为 CSV 不是二进制文件类型。


你怎么撤销这个操作?请查看我的问题:https://dev59.com/dpffa4cB1Zd3GeqP5kUJ - papiro
3
注意:此命令在 PowerShell 中无法运行,请确保您正在使用 cmd。在经典命令提示符下完美运行! - K-Dawg
命令是正确答案,我建议使用/B开关。没有该开关,将在结果文件末尾添加一个额外的字节0x1A。无论是CSV文件,它告诉复制执行二进制复制,避免在复制过程中进行任何修改。 - Shenron

26
copy /b file1 + file2 + file3 newfile

每个源文件都必须使用+添加到复制命令中,最后一个列出的文件名将是连接数据所复制到的位置。


1
没有一个复制全部(*)的命令吗?因为我有大约30到40个文件。 - edmon
1
这个版本允许您指定希望复制文件的确切顺序。使用上面的*.csv方法,您将以随机的方式获取文件。 - Marc B

5

如果这是批处理脚本(.bat文件)的一部分,并且你有一个大文件列表,你可以使用多行^,以及可选的/Y标志来抑制提示,确认您想要覆盖现有的目标文件。

REM Concatenate several files to one
COPY /Y ^
    this_is_file_1.csv + ^
    this_is_file_2.csv + ^
    this_is_file_3.csv + ^
    this_is_file_4.csv + ^
    this_is_file_5.csv + ^
    this_is_file_6.csv + ^
    this_is_file_7.csv + ^
    this_is_file_8.csv + ^
    this_is_file_9.csv ^
        output_file.csv

将命令拆分成多行比在一行上执行命令更整洁。


这种格式更加清晰。我可以轻松地在VS Code中格式化和准备成千上万个文件名。谢谢! - jinhr
这个在DOS中不起作用(因为此问题被标记为DOS),因为DOS不支持“^”作为转义字符。 - phuclv
@phuclv,在Windows批处理脚本中,使用^来拆分行,详情请参见此处https://dev59.com/rHVD5IYBdhLWcg3wKYL-。 - default_avatar
@default_avatar 当然我知道,这就是为什么我像上面那样进行了评论。它不是用于分割行的字符,而是Windows cmd中的转义字符。这个问题标记为MS DOS,所以这并不适用。DOS没有任何转义字符,命令必须在单行中。 - phuclv

4
type data1.csv > combined.csv
type data2.csv >> combined.csv
type data3.csv >> combined.csv
type data4.csv >> combined.csv

假设您使用没有标题的文件,并且所有文件具有相同的列。


4

文件名必须正确排序才能正确组合!

file1.bin file2.bin ... file10.bin 不会正常工作

file01.bin file02.bin ... file10.bin 将会 正常工作

c:>for %i in (file*.bin) do type %i >> onebinary.bin

适用于 ASCII 或二进制文件。


这对我来说使用双引号是有效的。for %i in (*.csv) do type "%i" >> onefile.csv - Warwick Foster

1
for %f in (filenamewildcard0, filenamewildcard1, ...) do echo %f >> newtargetfilename_with_path

与Mike T的想法相同;可能在MessyDog的127个字符命令行限制下效果更好。

-3

请确保您已经映射了Y盘,或者将所有文件复制到本地目录c:/local中

c:/local> 复制 *.* c:/newfile.txt


@AnnaLear 同样神秘的 y 盘...好像有什么奇怪的东西...在附近。你会叫谁?https://www.youtube.com/watch?v=BMPcuZZgmtE - rayryeng

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接