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

批量将指定根目录下子文件夹内JPG文件合并为同名PDF并删除原文件的批处理脚本需求

批量将指定根目录下子文件夹内JPG文件合并为同名PDF并删除原文件的批处理脚本需求

嗨,我来帮你搞定这个批处理脚本的需求!先明确一下你的核心诉求:

  • 给定根目录(比如C:\ROOT),自动遍历里面所有子文件夹
  • 每个子文件夹里的JPG按现有命名顺序合并成和文件夹同名的PDF,存在该子文件夹里
  • 合并成功后删除对应文件夹里的所有JPG文件

前提准备

首先你需要安装ImageMagick(Windows自带命令行没有直接合并JPG到PDF的工具),安装时记得勾选「Add application directory to your system PATH」,这样脚本里能直接调用magick命令;如果没勾选,后面脚本里要替换成magick.exe的完整路径(比如"C:\Program Files\ImageMagick-7.x.x\magick.exe")。

批处理脚本

直接用下面的脚本,注释已经写得很清楚,你可以根据需要调整:

@echo off
setlocal enabledelayedexpansion

:: 可选:直接指定根目录,不用手动输入的话,把下面这行解开注释,删掉set /p那部分
:: set "root_dir=C:\ROOT"

:: 提示用户输入根目录路径
set "root_dir="
set /p "root_dir=请输入根目录路径(例如C:\ROOT):"

:: 检查输入的根目录是否存在
if not exist "%root_dir%" (
    echo ❌ 错误:指定的根目录不存在,请检查路径后重试!
    pause
    exit /b 1
)

echo 🚀 开始处理根目录:%root_dir%
echo --------------------------

:: 遍历根目录下的所有子文件夹
for /d %%d in ("%root_dir%\*") do (
    echo 正在处理文件夹:%%~nd
    :: 定义PDF文件名(和文件夹同名)
    set "pdf_filename=%%~nd.pdf"
    set "pdf_fullpath=%%d\!pdf_filename!"

    :: 使用ImageMagick按顺序合并JPG到PDF
    magick "%%d\*.jpg" "!pdf_fullpath!"

    :: 检查PDF是否生成成功
    if exist "!pdf_fullpath!" (
        echo ✅ 已生成PDF:!pdf_fullpath!
        :: 删除当前文件夹下的所有JPG文件(/q表示安静删除,无需确认)
        del /q "%%d\*.jpg"
        echo 🗑️ 已删除该文件夹下的所有JPG文件
    ) else (
        echo ⚠️ 警告:未能生成%%~nd的PDF文件,跳过删除JPG操作
    )
    echo --------------------------
)

echo 🎉 所有文件夹处理完成!
pause
exit /b 0

关键说明

  1. 延迟变量扩展:setlocal enabledelayedexpansion是必须的,因为在for循环里需要动态获取pdf_fullpath这类变量的实时值
  2. 排序问题:你的JPG已经是File0001.jpg这种带前导零的命名,系统会自动按正确的数字顺序排序,magick命令会按这个顺序合并,完全符合你的需求
  3. 容错处理:脚本加了根目录检查、PDF生成成功检查,避免误删文件
  4. 保留JPG:如果不想删除原JPG,把del /q "%%d\*.jpg"这一行注释掉(前面加::)就行

备注:内容来源于stack exchange,提问作者Enrico Priotti

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 08:09:37