我已经知道如何使用ImageMagick返回高度。如何将for循环和此代码(转换图像-ping-格式“%h”信息:)相结合,以删除一定高度以下的文件?
@echo off
setlocal
set "min.height=1000"
for /f "usebackq delims=;" %%A in (`dir /b /A:-D *.*`) do If convert %%A -ping -format "%h" info: LSS %min.height% del "%%A"
当我使用该代码时,它告诉我%A是意外的。
答案 0 :(得分:1)
我没有/没有使用convert
,所以我不得不猜测。如果命令convert "%%A" -ping -format "%%h" info:
仅返回高度本身而没有其他文本,则将执行以下操作(如果输出更多,则需要调整for /f
)。同样,也不需要dir
,因为普通的for
循环能够获取匹配的文件本身。
@echo off
setlocal enabledelayedexpansion
set "min.height=1000"
for %%A in (*.jpg *.png) do (
for /f %%B in ('convert "%%A" -ping -format "%%h" info:') do (
set /a "height=%%B"
if !height! lss %min.height% (
echo deleting %%A, because %%B is less than %min.height%
ECHO del "%%A"
)
)
)