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

如何编写Batch Script仅对大于1500KB的jpg文件执行mogrify命令

错误原因排查
  • 语法使用错误:FOR /F 是用于解析文本、命令输出的专用参数,遍历本地文件不需要添加该参数,错误的参数会导致文件遍历逻辑异常
  • 业务逻辑错误:原代码仅会记录遍历到的最后一个jpg文件的大小,且判断符合条件后会对当前目录所有jpg文件执行缩放,完全不符合仅处理单个体积超标文件的需求
  • 变量解析问题:批处理默认在括号包裹的代码块中会预读取变量值,循环内动态修改的变量需要开启延迟扩展才能正常读取
修正后的批处理代码
@echo off
setlocal enabledelayedexpansion
:: 1500KB对应的字节数为1500*1024=1536000,可根据需求自行调整阈值
set "maxbytesize=1536000"

for %%f in (*.jpg) do (
    set "filesize=%%~zf"
    if !filesize! GTR !maxbytesize! (
        magick mogrify -resize 50%% "%%f"
    )
)

endlocal
echo 所有符合条件的文件处理完毕
pause
注意事项
  • 代码中对文件名添加了引号包裹,可兼容带空格、特殊字符的文件名
  • mogrify命令不需要重复指定输入通配符,直接传入单个目标文件即可完成对应修改
  • 如果你认为1500KB按1500000字节计算更符合你的需求,直接修改maxbytesize的赋值即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:54:07