2016-09-27 112 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