如何使用ImageMagick删除特定高度以下的所有图片
How to remove all pictures below a certain height using ImageMagick
我想创建一个bat来删除特定大小以下的文件,以删除特定高度以下的JPG和PNG文件。
我已经知道如何使用 ImageMagick return 高度。如何结合 for 循环和这段代码(convert image -ping -format "%h" info:) 来删除特定高度以下的文件?
@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 是意外的。
我不会have/useconvert
,所以我不得不猜测。如果命令 convert "%%A" -ping -format "%%h" info:
只是 returns 高度本身而没有附加文本,则执行以下操作(如果有更多输出,则需要调整 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"
)
)
)
我想创建一个bat来删除特定大小以下的文件,以删除特定高度以下的JPG和PNG文件。
我已经知道如何使用 ImageMagick return 高度。如何结合 for 循环和这段代码(convert image -ping -format "%h" info:) 来删除特定高度以下的文件?
@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 是意外的。
我不会have/useconvert
,所以我不得不猜测。如果命令 convert "%%A" -ping -format "%%h" info:
只是 returns 高度本身而没有附加文本,则执行以下操作(如果有更多输出,则需要调整 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"
)
)
)