我尝试通过ruby脚本直接使用大量参数(264)在ImageMagick中运行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或其他方式编辑命令时克服这个问题(例如,通过globbing)?我试着按照前面提到的here来改变文件的结尾,但是无法得到正确的语法。
发布于 2019-03-15 00:21:35
要做的一件事是在运行命令字符串之前检查它的长度。如果它太长,对于您所在的系统,您可能需要将其分解为较小的块。
根据Microsoft Support的说法,在不知道你正在跑步的长度的情况下,
在运行Microsoft Windows XP或更高版本的计算机上,可以在命令提示符下使用的字符串的最大长度为8191个字符。在运行Microsoft Windows 2000或Windows NT 4.0的计算机上,可以在命令提示符下使用的字符串的最大长度为2047个字符。
此外,Linux对命令的长度也有限制。请参阅"Argument list too long": Beyond Arguments and Limitations
https://stackoverflow.com/questions/55167100
复制相似问题