当前,我的程序应该执行以下操作
for %S in Images\RAW_IMAGE\*.jpg) do set outsize=%~zS & set name=%~nxS & set /a outsize=(outsize*80/100)/1024 & set outsize=%outsize%KB & cd Images\RAW_IMAGE & mogrify -path Images\COMPRESSED_IMAGE -define jpeg:extent=%outsize% %name%
由于某种原因,运行它后出现此错误
:迁移:无法打开图像'%name%'
应该是文件名,因为我已经逐步测试了单个文件的代码,并且可以使用。
[我怀疑由于我不了解CMD中代码的工作原理,因此不会更新大号和名称值。
如果有人可以给我一些我做错事情的提示,我将不胜感激。
我没有mogrify
,所以我无法测试该批处理文件,因此您需要为我们进行测试。
@echo off
setlocal enabledelayedexpansion
for %%i in (.\Images\RAW_IMAGE\*.jpg) do (
set outsize=%%~zi
set name=%%~nxi
pushd .\Images\RAW_IMAGE
mogrify -path Images\COMPRESSED_IMAGE -define jpeg:extent=!outsize!KB !name!
popd
)