@echo off
:: ImageMagick 拼接(按拖入顺序)
:: 输出格式:头部数字_所有尾部数字以 - 连接.png
if "%~1"=="" (
echo 请將多张图片拖动到本批处理文件上进行拼接。
pause
exit /b
)
echo 收集图片...
setlocal enabledelayedexpansion
set IMGS=
set /a INDEX=0
set TAILS=
:: 收集所有图片路径
:collect
if "%~1"=="" goto merge
set /a INDEX+=1
set "FILE_!INDEX!=%~1"
set "IMGS=!IMGS! "%~1""
shift
goto collect
:merge
echo 共收到 %INDEX% 张图片
:: ===========================
:: 1. 取第一张的“头数字”
:: ===========================
for %%a in ("!FILE_1!") do set "FN_FIRST=%%~na"
:: 默认以空格分词,第一个就是前面的数字(例如 1)
for /f "tokens=1" %%a in ("!FN_FIRST!") do set "HEAD_NUM=%%a"
:: 如果还是没取到,给个兜底(防止为空)
if not defined HEAD_NUM set "HEAD_NUM=0"
:: ===========================
:: 2. 取每一张图片名下划线后的数字
:: ===========================
for /l %%i in (1,1,%INDEX%) do (
for %%a in ("!FILE_%%i!") do set "FN=%%~na"
for /f "tokens=2 delims=_" %%a in ("!FN!") do (
if defined TAILS (
set "TAILS=!TAILS!-%%a"
) else (
set "TAILS=%%a"
)
)
)
:: ===========================
:: 3. 拼出最终文件名
:: ===========================
set "OUTPUT=%HEAD_NUM%_%TAILS%.png"
echo 输出文件名:%OUTPUT%
echo 开始拼接...
magick %IMGS% -append "%OUTPUT%"
echo.
echo ======================================
echo 拼接完成!
echo 输出文件:%OUTPUT%
echo ======================================
echo.
暂无评论


