Cmd 如何使用ImageMagick删除特定高度以下的所有图片

Cmd 如何使用ImageMagick删除特定高度以下的所有图片,cmd,imagemagick,Cmd,Imagemagick,我想创建一个bat来删除特定大小下的文件,以删除特定高度下的JPG和PNG文件 我已经知道如何使用ImageMagick返回高度。如何将for循环与此代码(转换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 -form

我想创建一个bat来删除特定大小下的文件,以删除特定高度下的JPG和PNG文件

我已经知道如何使用ImageMagick返回高度。如何将for循环与此代码(转换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是意外的。

我没有/use
convert
,所以我不得不猜测。如果命令
convert“%%A”-ping-format“%%h”info:
只返回高度本身,而不返回其他文本,则可以执行以下操作(如果有更多输出,则需要调整/f的
for
)。也不需要
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"
    )
  )
)
不得不删除第二个“回声”,但这是完美的,多么专业!thanksWe倾向于通过重复这些命令来“解除”潜在的有害命令(如
del
)。(应该提到
:)
)。这是伟大的测试和故障排除。