imagemagick 批处理命令后的错误级别 0
Errorlevel 0 after imagemagick batch command
我正在尝试使用错误级别检查 ImageMagick 命令是否成功完成。
但是,我只得到错误级别 0。这是我目前正在尝试的:
@ECHO OFF
SETLOCAL EnableDelayedExpansion
::setting %file% and %outputfile% here, not relevant
ECHO error: %ERRORLEVEL%
magick convert "%file%" -crop 200x200+100+100 -threshold 50%% -define png:color-type=3 -define png:bit-depth=1 %outputname%
ECHO error: %ERRORLEVEL%
当file
是一个小于300x300的文件时,magick命令打印convert: invalid profile length `file.png' @ warning/png.c/MagickPNGWarningHandler/1748.
但是所有回显命令输出0。
我尝试过的事情:
- 使用延迟扩展,将
%ERRORLEVEL%
替换为!ERRORLEVEL!
- 小写
!errorlevel!
- 将
&& ECHO success || ECHO failure
放在魔法线后面(打印成功)
- 在 magick 行之后的行中添加
IF NOT ERRORLEVEL 0 ( ECHO oops )
(没有打印任何内容)
这让我相信 magick 命令中的错误实际上并没有将 errorlevel 设置为非零值,但是有没有其他方法可以检查命令是否遇到问题?
ImageMagick 警告不会增加错误级别,必须将 -regard-warnings
选项添加到命令中才能这样做(感谢 Mark!)
但是,替代 magick convert
和 ImageMagick 7 及更高版本中的其他命令的 magick
命令现在似乎没有可用的 -regards-warnings
选项:https://imagemagick.org/script/porting.php#cli.因此,在这种情况下必须使用magick convert -regard-warnings [other options]
。
我正在尝试使用错误级别检查 ImageMagick 命令是否成功完成。 但是,我只得到错误级别 0。这是我目前正在尝试的:
@ECHO OFF
SETLOCAL EnableDelayedExpansion
::setting %file% and %outputfile% here, not relevant
ECHO error: %ERRORLEVEL%
magick convert "%file%" -crop 200x200+100+100 -threshold 50%% -define png:color-type=3 -define png:bit-depth=1 %outputname%
ECHO error: %ERRORLEVEL%
当file
是一个小于300x300的文件时,magick命令打印convert: invalid profile length `file.png' @ warning/png.c/MagickPNGWarningHandler/1748.
但是所有回显命令输出0。
我尝试过的事情:
- 使用延迟扩展,将
%ERRORLEVEL%
替换为!ERRORLEVEL!
- 小写
!errorlevel!
- 将
&& ECHO success || ECHO failure
放在魔法线后面(打印成功) - 在 magick 行之后的行中添加
IF NOT ERRORLEVEL 0 ( ECHO oops )
(没有打印任何内容)
这让我相信 magick 命令中的错误实际上并没有将 errorlevel 设置为非零值,但是有没有其他方法可以检查命令是否遇到问题?
ImageMagick 警告不会增加错误级别,必须将 -regard-warnings
选项添加到命令中才能这样做(感谢 Mark!)
但是,替代 magick convert
和 ImageMagick 7 及更高版本中的其他命令的 magick
命令现在似乎没有可用的 -regards-warnings
选项:https://imagemagick.org/script/porting.php#cli.因此,在这种情况下必须使用magick convert -regard-warnings [other options]
。