2016-09-27 115 views
0

我想在我的Windows PowerShell中运行imagemagick命令行,但它不起作用,如果我在我的常规命令行中运行它,它的工作。在命令行和Windows PowerShell中Imagemagick命令

的命令如下:

(我不需要的换行符,我只是把它们使得命令更可读)

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 

我获得以下错误,如果我在运行它我的PowerShell:(我不得不把它翻译成英文)

k2.jpg:未检测到的措辞“k2.jpg”为cmdlet, 函数,脚本文件的名称。

编辑:

其实我并不需要的换行符处,我只是把他们使代码更易读,如果你有一个建议,没有线路断路器是罚款以及。

编辑:

我想马特的建议是这样的:

convert --% -bordercolor none -background none -gravity center k1.jpg -border 5x5 (k2.jpg k3.jpg k4.jpg -border 5x5 +append) (k5.jpg k6.jpg k7.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。

+0

PowerShell使用其他线路游:http://stackoverflow.com/questions/3235850/how-to-enter-a-multi-line-command –

+0

@ D.J。谢谢我不知道这一点,我并不需要我的命令中的换行符,我只是放下它们,以便命令更具可读性。尝试你的建议后,我得到了上面的同样的错误。 – utdev

+0

第二个错误不再来自PowerShell。这是来自convert.exe。它会出现停止解析参数现在按预期工作。 – Matt

回答

1

主要问题是,PowerShell是试图把那些喜欢的PowerShell句法。 ()表示一个表达式。

There are multiple ways of handling exe's in PowerShell。取决于你的意图和PowerShell版本,有些选项比其他更令人痛苦(有些甚至被更多首选方法弃用)。

与你有什么表示最简单的就是用停止解析操作:

的停止解析符号( - %),在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)" 
+0

非常感谢您的建议,我首先尝试了您的第二条建议:)不幸的是,它不起作用,我是否需要打电话给您的第一个建议 - %一次在开始时,还是我需要多次调用它? – utdev

+0

一旦在开始@utdev – Matt

+0

我试过了你的建议,但它没有工作我用我使用的命令+命令行中的错误/消息来解决我的问题 – utdev

0

另一种方法是开始这样的过程:StartProcess -FilePath $pathToConvert -Args "-bordercolor none -background none -gravity...." -wait

这样PowerShell是不是要解释的ImageMagick-ARGS

+0

我想你需要发送一个参数数组。转换可能不像那样发送的那个。另外,如果没有使用变量,停止解析操作符将在这里工作。 'convert - %....' – Matt

+0

我guees -FilePath $ pathToConvert是我得到我的图像的路径,我已经导航到该路径,所以我想我不需要该部分的命令正确? – utdev

+0

@Matt可以发布您的建议请 – utdev