1

我是applescript的新手。我正在尝试创建一个 Automator 脚本应用程序,该应用程序在 InDesign 中打开一批现有文件,查找并更改文件中的文本。(我认为这会有点复杂,但这并不容易)我正在努力的是将这些文件保存在另一个位置,但使用原始文件名,因为我需要保留原始文件。我有一个脚本来指定路径和文件名,但我只需要指定路径并使用现有文件名。这可能吗?

我试过的代码是这样的:

tell application "Adobe InDesign CS5.5"
save document 1 to "users:xxx:Desktop:"
close document 1
end tell

它似乎不起作用,因为我没有指定文件名但我不想!有没有办法调用原始文件名?我假设必须有一种方法可以做到这一点,因为我看不到特定于一个特定文件的脚本的意义。

我的下一步是通过替换文件名的最后一位来重命名文件,例如: xxx_xxx_M6.indd 到 xxx_xxx_M7.indd 我知道如何在另一个脚本中执行此操作,但如果可以在上面的部分中完成,那就太好了。

4

2 回答 2

0

如果您想在保存时使用原始文件名,您可以从文件的属性中将其拉出并将其与您要保存到的路径结合起来,如下所示:

set origName to the name of document 1 as string
save document 1 to ("your:path:here:" & origName)

编辑:如果您已经有自己的替换后缀的例程,则可以origName在将其传递给 save 命令之前执行这些操作。我会在下面留下我的后缀替换,以防它对任何人都有帮助。


至于你问题的第二部分,关于替换后缀,这取决于你到底想做什么。从你的例子我猜你想增加一个数字,你可以用下面的代码来做:

set thePoint to the offset of "." in origName
set firstPart to (characters 1 through (thePoint - 1) of origName) as string
set fpLength to the length of firstPart

set newSuffix to ((the last character of firstPart) as number) + 1
set newName to (characters 1 through (fpLength - 1) of firstPart) & newSuffix ¬
    & ".indd" as string

这需要将文件的名称与其扩展名分开,通过将该名称的最后一个字符(强制为数字)增加 1 来创建一个新后缀,然后组合该批次以形成一个完整的文件名,然后您可以在保存中使用命令。

关键是拆分原始文件名,然后对部分执行操作。

现在,这目前有一些限制:除了单个数字之外的任何后缀都会使事情变得更加复杂(尽管并非不可能),并且假设运行脚本的任何人都在 Finder 的首选项中启用了“显示所有文件扩展名”(这可以工作不过)。

总结一切给我们这个:

tell application "Adobe InDesign CS5.5"
    set origName to the name of document 1 as string

    set thePoint to the offset of "." in origName
    set firstPart to (characters 1 through (thePoint - 1) of origName) as string
    set fpLength to the length of firstPart

    set newSuffix to ((the last character of firstPart) as number) + 1
    set newName to (characters 1 through (fpLength - 1) of firstPart) ¬
        & newSuffix & ".indd" as string

    save document 1 to ("your:path:here:" & newName)
end tell

如果您可以提供有关您打算使用的后缀的更多信息,我很乐意更新我的答案。

于 2013-02-26T11:44:49.787 回答
0

InDesign 文档有 3 个您可能感兴趣的属性:
name: "xxx_xxx_M6.indd"
file path: 文件 "Macintosh HD:sourceFolder:"
full name: 文件 "Macintosh HD:sourceFolder:xxx_xxx_M6.indd"

因此,要在桌面上保存(并关闭)同名的打开文件,您可以这样做:

tell application "Adobe InDesign CS5.5"  
    save document 1 to "users:xxx:Desktop:" & name of document 1  
    close document 1  
end tell
于 2013-02-26T11:46:36.230 回答