【发布时间】:2023-03-13 14:15:02
【问题描述】:
我正在尝试通过 ruby 脚本直接在 ImageMagick 中使用大量参数 (264) 运行 montage 函数。这是调用函数的行:
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 或其他方式(例如通过通配符)编辑命令时克服这个问题? 我尝试更改here 中提到的文件结尾,但语法不正确。
【问题讨论】:
-
可能是操作系统命令的文本行中的字符数限制。检查 Windows 的字符串行长度限制。对不起,我不是 Windows 用户,所以不能告诉你这些信息。但这是一个典型的问题。有一次我认为 Windows 有 256 个字符的限制。见docs.microsoft.com/en-us/windows/desktop/fileio/…。似乎有一种方法可以使用扩展字符长度。
-
感谢您的回复。我怀疑情况也是如此,因为代码在其他方面很健壮。我将尝试在 Linux 上运行它,看看是否能解决问题
标签: ruby imagemagick imagemagick-montage