Applescript重命名文件,是否出现错误?

时间:2018-12-11 14:56:36

标签: file applescript rename

我在apple脚本中有这个简单的代码,运行时应该重命名该文件。相反,它给我一个错误,无法获取文件“ Volumes:Projects:Projects:1.pdf”。

set ff to file "Volumes:Projects:Projects:1.pdf"
set ss to "Volumes:Projects:Projects:1.pdf"
set name of ff to ss

2 个答案:

答案 0 :(得分:1)

使用以下示例 AppleScript 代码,并且将 file 的存在设置为{{1} },显示在路径上:

ff

脚本编辑器中显示以下事件

set ff to POSIX path of "Volumes:Projects:Projects:1.pdf"
set ss to "2.pdf"

tell application "System Events" to set name of file ff to ss

Finder 中查找,tell application "System Events" set name of file "/Volumes/Projects/Projects/1.pdf" to "2.pdf" end tell 重命名为1.pdf,如本例所示。


更新:请注意,vadian在2中很好地说明了 HFS路径的层次结构,这也是我选择将其隐藏为 POSIX路径的部分原因。我还更喜欢使用系统事件,因为它通常比 Finder 更快地处理文件操作,并且可以同时使用 HFS 样式和 POSIX < / strong>样式路径

换句话说,使用系统事件,可以进行以下操作:

2.pdf

但是,即使格式不正确,它也可以起作用:

tell application "System Events" to set name of file "Projects:Projects:1.pdf" to "2.pdf"

tell application "System Events" to set name of file "/Volumes/Projects/Projects/1.pdf" to "2.pdf"

但是,使用 Finder 时,只有正确的 HFS路径可以正常工作,并且不能处理 POSIX路径,因为它不能无法理解它,因为它不在 Finder 的AppleScript词典中。

也就是说,即使在本示例中使用系统事件的格式错误的路径可以正常工作的情况下,也应始终确保传递的信息格式正确,这不是一个好习惯! >

答案 1 :(得分:1)

三个主要问题。

  1. 要重命名文件,您必须告诉FinderSystem Events进行此操作。
  2. HFS路径(用冒号分隔)始终以磁盘名称开始,始终,而不是以 Volumes 开头。
  3. 要重命名文件,请将name属性设置为文件名称,而不是完整路径

实际上您的示例不执行任何操作。

此代码段将磁盘1.pdf上的文件夹“项目”中的文件Projects重命名为2.pdf

tell application "Finder"
    set name of file "Projects:Projects:1.pdf" to "2.pdf"
end tell