【发布时间】:2011-10-09 12:34:14
【问题描述】:
我正在尝试使用一个包含多个 .csv 文件的文件夹,并使用 MS DOS 将所有这些文件和其中的信息合并到一个文件中。有什么建议吗?
【问题讨论】:
标签: dos
我正在尝试使用一个包含多个 .csv 文件的文件夹,并使用 MS DOS 将所有这些文件和其中的信息合并到一个文件中。有什么建议吗?
【问题讨论】:
标签: dos
文件名必须正确排序才能正确组合!
file1.bin file2.bin ... file10.bin 无法正常工作
file01.bin file02.bin ... file10.bin 会正常工作
c:>for %i in (file*.bin) do type %i >> onebinary.bin
适用于 ascii 或二进制文件。
【讨论】:
type data1.csv > combined.csv
type data2.csv >> combined.csv
type data3.csv >> combined.csv
type data4.csv >> combined.csv
等等
假设您使用的文件没有标题并且所有文件都有相同的列。
【讨论】:
for %f in (filenamewildcard0, filenamewildcard1, ...) do echo %f >> newtargetfilename_with_path
与 Mike T 的想法相同;在 MessyDog 的 127 个字符的命令行限制下可能会更好地工作
【讨论】:
如果这是批处理脚本(.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
这比在一行中执行命令更简洁。
【讨论】:
^ 作为转义字符
确保您已映射 y: 驱动器,或将所有文件复制到本地目录 c:/local
c:/local> 复制 *.* c:/newfile.txt
【讨论】:
y 驱动器... 哪里有点奇怪... 在附近。你要给谁打电话? youtube.com/watch?v=BMPcuZZgmtE
copy *.csv new.csv
不需要 /b,因为 csv 不是二进制文件类型。
【讨论】:
copy /b file1 + file2 + file3 newfile
每个源文件都必须使用+ 添加到复制命令中,最后列出的文件名将是连接数据复制到的位置。
【讨论】: