$sImageMagickHome = "C:\ImageMagick"
$sImageMagickConv = "$sImageMagickHome\convert.exe"
$sImageMagickArgs = @( '--%',
'-background transparent',
'-fill hsb(0,0,0)',
'-font Arial',
'-pointsize 18',
'-size 18x26',
'-gravity center')
for ($i = 0x01; $i -le 0x05; $i++)
{
$y = [char]$i
& $sImageMagickConv $sImageMagickArgs label:$y $sCharsDir\$y.png
#Write-Host $sImageMagickConv $sImageMagickArgs label:$y $sCharsDir\$y.png
}
使用直寫式主機,我可以得到一個例子,複製粘貼到命令行中,我發現它並正常運行,如果我請從PowerShell提示符這一行:使用call「和」運營商,多參數
C:\ImageMagick\convert.exe --% -background transparent -fill hsb(0,0,0) -font Arial -pointsize 18 -size 18x26 -gravity center label:☺ C:\Users\erics_000\Desktop\Output\Chars\☺.png
使用從腳本中調用操作「&」在所有但不工作,導致一些錯誤消息:
convert.exe: UnableToOpenBlob `--%': No such file or directory @ error/blob.c/OpenBlob/2697.
convert.exe: NoDecodeDelegateForThisImageFormat `' @ error/constitute.c/ReadImage/501.
convert.exe: UnrecognizedOption `-background transparent' @ error/convert.c/ConvertImageCommand/858.
的文章中,我一直在閱讀是: http://social.technet.microsoft.com/wiki/contents/articles/7703.powershell-running-executables.aspx
謝謝...
你嘗試從args數組中刪除' - %'嗎?我認爲如果逐字添加到調用中,而不是通過變量傳遞,它纔有意義。 – n0rd
- %存在,因爲它不會在沒有 - %的PowerShell提示符下運行。從參數數組中刪除 - %會導致不同的問題。 convert.exe:UnrecognizedOption' - 背景透明'@ error/convert.c/ConvertImageCommand/858。 – Giuseppe
那麼,'-background'和'transparent'應該與'convert.exe'預期它們是不同的數組項目。使用你當前的代碼,powershell會產生單個'-background transparent'(就像你把引號放在它的周圍一樣)參數。 – n0rd