PowerShell脚本调用ImageMagick报错:无法识别-resize参数
解决PowerShell中ImageMagick参数传递错误的方法
问题核心:你把-resize 1200x1200当成单个参数传给magick.exe,导致它把整个字符串识别成一个未知选项——ImageMagick要求-resize是独立的选项参数,1200x1200是该选项的取值,必须拆成两个独立参数传递。
正确写法示例
直接调用的脚本写法
# 定义路径变量 $magickExe = "C:\ProgrammeNoSetup\ImageMagick-7.1.0-62-portable-Q16-HDRI-x64\magick.exe" $srcImg = "D:\orG\3.08_10-02_1.jpg" $destImg = "D:\orG\output\3.08_10-02_1.jpg" # 按正确的参数拆分执行 & $magickExe $srcImg -resize 1200x1200 $destImg
用参数数组传递的写法(适合参数较多的场景)
$magickExe = "C:\ProgrammeNoSetup\ImageMagick-7.1.0-62-portable-Q16-HDRI-x64\magick.exe" $params = @( "D:\orG\3.08_10-02_1.jpg", "-resize", "1200x1200", "D:\orG\output\3.08_10-02_1.jpg" ) # 用@展开参数数组 & $magickExe @params
为什么之前的写法出错
当你把-resize 1200x1200作为单个字符串传递时,PowerShell会将其作为一个完整的参数发给magick.exe,此时magick收到的是"-resize 1200x1200",它会尝试匹配名为-resize 1200x1200的选项,自然找不到,所以报错。
内容的提问来源于stack exchange,提问作者Urs von Ballmoos
相关产品推荐
相关产品推荐

