删除“copy#” - 使用applescript从photoshop中的图层中删除文本

时间:2011-02-16 15:17:39

标签: sed applescript photoshop-cs3

我能够替换当前文档的每一层的名称,但是当我传递它“名称以...结尾”时,它失败了&该例外没有给出任何有价值的反馈。

tell application "Adobe Photoshop CS3"
tell current document
    set name of every layer where name ends with "copy*" to "replace_using_sed"
end tell

告诉

你能发现错误,或者你知道另一种方法吗?

2 个答案:

答案 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