Illustrator脚本实现关闭所有文档并提示保存的问题求解
Illustrator脚本批量处理文档并关闭的解决方案
问题原因
你当前的正向循环会导致索引错位:每关闭一个文档,app.documents的长度会动态减少,后续循环的索引会跳过未处理的文档,甚至触发索引越界报错。比如初始有3个文档,处理完第0个并关闭后,剩下的文档索引变为0和1,但循环i会走到1,此时访问的是原本的第2个文档,漏掉了原本的第1个。
修正后的代码
// 从最后一个文档开始倒序循环,避免索引错位问题 for (var i = app.documents.length - 1; i >= 0; i--) { var currentDoc = app.documents[i]; currentDoc.activate(); generateText(); // 执行你的文本生成函数 // 直接调用当前文档的close方法,无需依赖activeDocument,更可靠 currentDoc.close(SaveOptions.PROMPTTOSAVECHANGES); }
关键改进点
- 倒序循环:从最后一个文档开始处理,关闭文档不会影响未处理的文档索引,确保所有文档都能被遍历到。
- 直接操作文档对象:用循环中获取的
currentDoc调用close方法,比依赖app.activeDocument更稳定,避免激活操作的潜在冲突。
内容的提问来源于stack exchange,提问作者Zawyed Zeon
相关产品推荐
相关产品推荐

