在 ImageMagick 中运行'montage'函数时出错"参数太多"?



我正在尝试通过Ruby脚本直接在ImageMagick中运行montage函数(264)。这是调用函数的行:

montage -mode concatenate -tile #{x_tiles}x#{y_tiles} #{tempfiles.map{|t| t.path}.join(' ')} #{final_filename}.jpg

这适用于较小数量的参数(例如10),但是当我尝试使用较大的数量运行(230〜)时,我会收到以下错误:

Argument list too long {所有参数的列表} (Errno: :E2BIG)

我正在使用Windows,因此我尝试了PowerShell和CMD,并遇到相同的错误。

有没有办法克服在Ruby或其他方式编辑命令(例如通过Globbing)进行编辑的方法?我试图更改此处提到的文件结尾,但无法正确地进行语法。

要做的一件事是在运行之前检查命令字符串的长度。如果太长了,对于系统中的系统,您可能需要将其分解成较小的块。

根据Microsoft Support

,不知道您正在运行的长度

在运行Microsoft Windows XP或更高版本的计算机上,您可以在命令提示符上使用的字符串的最大长度为8191个字符。在运行Microsoft Windows 2000或Windows NT 4.0的计算机上,您可以在命令提示符处使用的字符串的最大长度为2047个字符。

也在命令的长度上也有限制。请参阅"参数列表太长":超越参数和限制

在Linux上,您可以重新编译内核以增加页面大小,但是在Windows上您没有这样的选择。

最新更新