Windows10下批量水平合并配对JPG并按目录结构输出的方案咨询
实现方案(Windows 批处理脚本 + ImageMagick)
前置准备
- 确认ImageMagick已正确安装:按Win+R输入
cmd打开命令提示符,输入magick -version或者convert -version,能输出版本信息即为可用。如果提示找不到命令,需要把ImageMagick的安装路径加到系统环境变量PATH里。 - 提前备份所有原始扫描图片,避免操作失误丢失数据。
- 先单独拿出1-2个日期的测试文件夹跑脚本验证效果,确认符合要求后再处理全量数据。
脚本使用步骤
- 打开记事本,把下方代码粘贴进去,保存为
merge_images.bat,存放位置和你的images文件夹放在同一级目录(比如images路径是C:\Users\me\doctor\Images\images,脚本就存到C:\Users\me\doctor\Images\merge_images.bat)。
@echo off setlocal enabledelayedexpansion :: 原始图片根目录、输出根目录配置,无需修改 set "SOURCE_DIR=images" set "OUTPUT_DIR=merged" :: 遍历所有日期文件夹 for /d %%d in ("%SOURCE_DIR%\*") do ( set "date_dir=%%~nd" :: 自动创建输出目录下对应的日期文件夹 if not exist "%OUTPUT_DIR%\!date_dir!" mkdir "%OUTPUT_DIR%\!date_dir!" :: 遍历当前日期下的所有正面图片,跳过带00001的背面图 for %%f in ("%%d\pa_10*.jpg") do ( set "filename=%%~nf" if "!filename:~-5!" neq "00001" ( :: 拼接对应的背面图路径、输出文件路径 set "front_img=%%f" set "back_img=%%d\!filename!00001.jpg" set "output_img=%OUTPUT_DIR%\!date_dir!\!filename!_merged.jpg" :: 执行拼接,convert报错的话把这里换成magick convert "!front_img!" "!back_img!" +append "!output_img!" echo 已完成:!output_img! ) ) ) echo 全部图片拼接完成 pause
- 双击
merge_images.bat运行即可,运行窗口会实时显示处理进度,结束后会自动提示。
注意事项
- 脚本不会修改原始images文件夹内的任何内容,所有输出文件都存在merged目录下,结构和你要求的完全一致。
- 如果需要调整拼接顺序(背面在左正面在右),把脚本里
"!front_img!" "!back_img!"的位置互换即可。 - 缺少对应背面图的正面图会被自动跳过,你可以后续根据运行日志单独处理异常文件。
- 4000份文件的处理时间取决于电脑性能,运行时最小化窗口后台挂着就行。
内容的提问来源于stack exchange,提问作者mrollowl
相关产品推荐
相关产品推荐

