You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何用CMD的copy /b命令批量合并350个文件?

批量合并350个文件的简便方案

嘿,手动把350个文件名挨个敲进copy /b命令里?这活儿想想都头疼!给你几个高效的办法,轻松搞定批量合并:

方法1:利用CMD通配符(适合文件名有规律且排序正确的情况)

如果你的文件名是固定位数数字后缀(比如file000file001file349),直接用通配符就能一步到位:

copy /b file* newfile

⚠️ 注意:如果文件名是file1file10这种非固定位数的,CMD的通配符排序会是file1file10file100…,不是按数字大小顺序来的,合并结果会出错!这种情况别用这个方法。

方法2:写个批处理脚本(精准控制合并顺序)

要是文件名排序没规律,或者你想严格按数字顺序合并,写个简单的批处理脚本就搞定:

@echo off
setlocal enabledelayedexpansion
:: 设置输出文件名
set "output=newfile"
:: 如果输出文件已存在,先删除
if exist "%output%" del "%output%"
:: 循环从0到349(对应你的350个文件)
for /l %%i in (0,1,349) do (
    :: 这里根据你的实际文件名修改,比如是file.%%i就改成file.%%i
    set "filename=file%%i"
    :: 逐个合并到输出文件
    copy /b "%output%"+"!filename!" "%output%"
)
echo 合并完成!

使用时只需要修改filename的格式和循环的起止数字(0到349正好是350个文件),双击运行脚本就行。

方法3:用PowerShell(更灵活的排序和合并)

如果你能用PowerShell,这个方法适配性更强,不管文件名是不是固定位数,都能按数字顺序合并:

# 替换成你的文件名前缀,比如file.的话就改成'file.'
$prefix = 'file'
# 获取所有匹配的文件,按数字后缀排序
Get-ChildItem -Path . -Filter "$prefix*" | 
    Sort-Object {[int]$_.Name.Replace($prefix,'')} | 
    # 以二进制模式读取并合并
    Get-Content -Raw -Encoding Byte | 
    Set-Content -Path "newfile" -Encoding Byte

这个命令会自动按文件名里的数字排序,然后把所有文件内容合并到newfile里,二进制文件也能完美处理。

额外提醒

  • 合并前一定要备份原文件,避免操作失误导致文件丢失;
  • 如果是二进制文件(比如视频、压缩包),必须用二进制模式合并(上面的方法都满足),不然会损坏文件;
  • 确认合并顺序:很多文件的合并结果依赖顺序,比如拆分的压缩包,顺序错了就无法解压。

内容的提问来源于stack exchange,提问作者Wander Milder

火山引擎 最新活动