我能够替换当前文档的每一层的名称,但是当我传递它“名称以...结尾”时,它失败了&该例外没有给出任何有价值的反馈。
tell application "Adobe Photoshop CS3"
tell current document
set name of every layer where name ends with "copy*" to "replace_using_sed"
end tell
告诉
你能发现错误,或者你知道另一种方法吗?
答案 0 :(得分:0)
不确定这是否会修复整个脚本,但它被称为“其”过滤器...所以将“where”替换为“which”。我不是说过滤器适用于photoshop,但你可以试试。如果它不起作用,那么你必须获得所有图层,使用重复循环遍历它们,并逐个过滤每个名称。
答案 1 :(得分:0)
copy*
导致错误。您不能在AppleScript中使用*
作为通配符。相反,请使用... where name contains "copy" ...
。
这是我的脚本工作版本(使用Photoshop CS5测试):
tell application "Adobe Photoshop CS3"
set layerList to name of every layer in current document where name contains "copy"
end tell
repeat with currentName in layerList
set layerName to text 1 thru ((offset of "copy" in currentName) - 1) of currentName
tell application "Adobe Photoshop CS3"
set (the name of first layer in current document where name contains "copy") to layerName
end tell
end repeat