BAT批量处理图片——调整尺寸、压缩体积

0 分享

官方客服

官方客服 4小时前

图片尺寸太大影响网页加载速度,建议本地处理完后再上传,以下代码为例,
在桌面新建两个文件夹,一个为源图片文件夹in,一个为输出文件夹为out
以管理员身份运行此bat文件,图片保存到in文件夹后,将自动调整大小、压缩并保存到out文件夹


代码如下,保存为.bat文件

@echo off
setlocal enabledelayedexpansion
chcp 65001 >nul
title 图片自动处理监控

:: 本文件需管理员身份运行

:: ========== 配置 ★需要修改以下3个路径★ ==========
:: 源文件夹路径
set "SOURCE_DIR=C:\Users\admin\Desktop\in"
:: 输出文件夹路径
set "TARGET_DIR=C:\Users\admin\Desktop\out"
:: 程序路径 命令行版本下载地址 https://download.xnview.com/NConvert-win64.zip
set "NCONVERT=K:\图像网站\xnconvert_92516\NConvert\nconvert.exe"

:: 以下默认无需修改
if not exist "%SOURCE_DIR%" mkdir "%SOURCE_DIR%"
if not exist "%TARGET_DIR%" mkdir "%TARGET_DIR%"

echo ========================================
echo 图片自动处理监控
echo 源文件夹: %SOURCE_DIR%
echo 目标文件夹: %TARGET_DIR%
echo ========================================
echo.

:loop
set processed=0

for %%f in ("%SOURCE_DIR%\*.jpg" "%SOURCE_DIR%\*.jpeg" "%SOURCE_DIR%\*.png") do (
    set "filename=%%~nf"
    set "ext=%%~xf"
    
    :: 目标文件路径
    set "target_file=%TARGET_DIR%\!filename!.jpg"
    
    if not exist "!target_file!" (
        set /a processed+=1
        echo [%time%] 处理: %%~nxf
        
        "!NCONVERT!" -ratio -resize 1024 768 -out jpeg -q 80 -opthuff -o "!target_file!" "%%f"
        
        :: 检查是否成功
        if exist "!target_file!" (
            echo   成功 → !target_file!
            :: 移动源文件到已处理文件夹
            set "processed_dir=%SOURCE_DIR%\已处理"
            if not exist "!processed_dir!" mkdir "!processed_dir!"
            move "%%f" "!processed_dir!\%%~nxf" >nul 2>nul
        ) else (
            echo   失败!
            :: 检查是否在源文件夹生成了 _1 文件
            if exist "%SOURCE_DIR%\!filename!_1.jpg" (
                echo   注意:文件被输出到源文件夹了!
                move "%SOURCE_DIR%\!filename!_1.jpg" "!target_file!" >nul 2>nul
            )
        )
    )
)

if !processed! gtr 0 (
    echo 本轮处理了 !processed! 个文件
)

:: 等待3秒
timeout /t 3 /nobreak >nul
goto loop

另外,也可以使用可视化版本(xnconvert),百度即可


请登陆后操作,点击立即登陆