命令行和windows powershell中的Imagemagick命令

时间:2016-09-27 14:35:50

标签: powershell cmd command imagemagick imagick

我正在尝试在我的windows powershell中运行一个imagemagick命令行,但它不起作用,如果我在常规命令行中运行它确实有效。

命令如下所示:

(我不需要换行符,我只是把它们放在一起,以便命令更具可读性)

customerIUD(data: any) : Promise<any>{
    return this.fooHttp
        .postData(...);
}

customerFieldIUD(data: any) : Promise<any>{
    return this.fooHttp
        .postData(...);
}

如果我在我的PowerShell中运行它会出现以下错误:(我必须将其翻译成英文)

  

k2.jpg:未将“k2.jpg”这一措辞视为cmdlet的名称,   一个函数,一个脚本文件。

修改

实际上我不需要换行符,我只是把它们放在一起以便代码更具可读性,如果你有一个没有断路器的建议那么它也很好。

编辑:

我尝试了Matt这样的建议:

convert -bordercolor none -background none -gravity center ^
k1.jpg -border 5x5 ^
( k2.jpg k3.jpg k4.jpg -border 5x5 +append ) ^
( k5.jpg k6.jpg k1.jpg -border 5x5 +append ) ^
-append -border 5x5 -resize 720x480 output.png

我收到了以下错误/消息:

  

convert.exe:无法打开图像'(k2.jpg':没有这样的文件或目录   @ error / blob.c / OpenBlob / 2695。 convert.exe:无法识别的选项   “+ append”'@ error / convert.c / ConvertImageCommand / 764。

1 个答案:

答案 0 :(得分:1)

主要问题是PowerShell正在尝试处理类似PowerShell语法的问题。 ()表示表达式。

There are multiple ways of handling exe's in PowerShell。根据您的意图和PowerShell版本,某些选项比其他选项更令人痛苦(有些选项甚至被更优选的方法弃用)。

最简单的做法是使用stop parsing运算符:

  

Windows PowerShell 3.0中引入的停止解析符号( - %),       指示Windows PowerShell不要将输入解释为       Windows PowerShell命令或表达式。

所以你可以这样做:

convert --% -bordercolor none -background none -gravity center....

我没有测试你正在做什么的环境但也许你可以在这些参数周围使用引号,这样PowerShell就不会把它想象成一个字符串。

"( k2.jpg k3.jpg k4.jpg -border 5x5 +append )"