You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows CMD/PowerShell中用ImageMagick批量合成同前缀图片?

批量合成同名前缀PNG图片(Windows CMD/PowerShell实现)

Windows CMD 脚本方案

创建一个.bat文件,粘贴以下内容后放在图片所在文件夹运行:

@echo off
setlocal enabledelayedexpansion

set "prefixes="

:: 提取所有唯一前缀(基于_a.png文件)
for %%f in (*_a.png) do (
    set "fname=%%~nf"
    set "prefix=!fname:_a=!"
    if not "!prefixes:!prefix!=!"=="!prefixes!" set "prefixes=!prefixes!!prefix! "
)

:: 逐个合成对应前缀的图片
for %%p in (%prefixes%) do (
    echo 合成 %%p.png...
    magick composite "%%p_b.png" "%%p_a.png" "%%p.png"
)

endlocal
pause

脚本会自动识别所有带_a.png的前缀,去重后执行合成命令,将半透明的_b图叠加在_a图上方,输出不带后缀的目标图片。

PowerShell 脚本方案

打开PowerShell切换到图片所在文件夹,执行以下代码:

# 按前缀分组所有PNG文件
$imageGroups = Get-ChildItem -Filter *.png | Group-Object -Property { $_.BaseName -replace '_[ab]$', '' }

foreach ($group in $imageGroups) {
    $prefix = $group.Name
    # 找到组内的_a和_b图片
    $aImg = $group.Group | Where-Object { $_.BaseName -eq "${prefix}_a" }
    $bImg = $group.Group | Where-Object { $_.BaseName -eq "${prefix}_b" }

    if ($aImg -and $bImg) {
        Write-Host "正在合成 $prefix.png"
        magick composite $bImg.FullName $aImg.FullName "$prefix.png"
    } else {
        Write-Warning "前缀 $prefix 缺少对应 _a 或 _b 图片,跳过处理"
    }
}

该方案会自动分组同名前缀的图片,同时检查每组是否存在完整的_a和_b文件,避免因文件缺失导致报错。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 10:10:40