我正在使用 Image Magick 的蒙太奇函数编写 PowerShell 脚本。我的脚本一直有效,直到源文件 (.jpgs) 的数量增加到不明确的文件数量。一旦有“太多”文件,脚本就会因为'Program 'montage.exe' failed to run: The filename or extension is too long'
. 在 Image Magick 论坛(链接@底部)上建议让 PowerShell 从文本文档中读取,而不是使用“@”运算符来减少长度。
代码现在看起来像:
montage -verbose -label %t -pointsize 25 -background '#FFFFFF' -tile 24x5 -fill 'black' -define jpeg:size=600x780 -geometry 600x780+40+150 -quality 90 -auto-orient @E:\Output\contactSheetImages.txt E:\Contact_Sheet.jpg
我收到以下错误:
montage : montage.exe: unable to open image '@E:ÿþE': No such file or directory @ error/blob.c/OpenBlob/2695.
montage.exe: no decode delegate for this image format `' @ error/constitute.c/ReadImage/508.
montage.exe: `E:\Contact_Sheet.jpg' @ error/montage.c/MontageImageCommand/1774.
我相当肯定使用“@”运算符,因为我可能会混淆脚本,但我对在 PowerShell 中使用“@”没有足够的了解来了解原因。
任何了解 ImageMagick 或只是更了解 PowerShell 的人都可以解释为什么这可能会破坏脚本吗?
我试过了:
- 从 txt 文件中替换
@E:\Output\contactSheetImages.txt
为变量Get-Content
- 在没有“@”运算符的情况下定位文本文档
- 使用单引号和双引号
@E:\Output\contactSheetImages.txt
Image Magick 论坛: https ://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=34596