【发布时间】:2014-04-01 17:12:13
【问题描述】:
我去运行一个旧脚本,它在 10.9 更新后坏了。我曾经使用以下代码移动带有系统事件的文件。
set Somefilepath to "Design_005_HD:Users:Design_005:Desktop:Start:TextFile.txt"
set somefolderpath to "Design_005_HD:Users:Design_005:Desktop:End:"
tell application "System Events"
move file (Somefilepath) to folder (somefolderpath)
end tell
现在它给了我以下错误。
error "系统事件出错:无法生成文件 \"Design_005_HD:Users:Design_005:Desktop:Start:TextFile.txt\" 进入 输入整数。”来自文件的数字 -1700 "Design_005_HD:Users:Design_005:Desktop:Start:TextFile.txt" 为整数
我知道我可以将其换掉并使用 finder,但我宁愿不使用它。哪些更改不再有效?
2014 年 4 月 2 日更新
我已经尝试过将文件/文件夹位置提供给系统事件的各种方式,但它不起作用。我很高兴不是我不能让它发挥作用。如果我找到答案或进行有效更新,我会更新这篇文章。
2014 年 4 月 3 日更新
看来这只是系统事件无法移动文件的错误。我已经在这里报告了http://bugreport.apple.com/,其他人也应该这样做。
请不要把我的代码放在心上,这只是我无法让它工作的地方。我有 10.8.5 的工作代码,它是上面显示的内容减去系统事件告诉块中的文件夹标签。不知道为什么它可以在没有文件夹标签的情况下工作,但确实可以。在多个组合上进行了测试。如果它没有损坏,请不要大惊小怪。注意到它并继续前进。
2014 年 10 月 20 日更新
对于任何有兴趣的人。我收到一封电子邮件,说明我的票已关闭/解决。所以小牛队将永远被打破,但当它出现时,优胜美地可能会有光明。
【问题讨论】:
-
只需使用
"Finder"context 而不是“系统事件”上下文来解决问题。在评论中,您说:“我避免使用 Finder,因为它似乎更慢,而且我不太了解使用它们的 shell 脚本。” - 虽然我没有测试,但不确定使用 Finder 是否会更慢 - 启动成本不是问题,因为 Finder 一直在运行。您还可以将 Finder 的使用限制为移动操作。 -
我已经更新了我的答案,向您展示了 HFS 样式(基于冒号)路径和 POSIX 样式路径(如您问题的原始版本)的解决方法。将来,我鼓励您不要在没有评论的情况下过于彻底地修改您的问题,因为这可能(部分)使一些已经给出的答案无效并使未来的访问者感到困惑。我已经通过bugreport.apple.com 向 Apple 提交了错误报告,我鼓励您也这样做(遗憾的是,错误报告不公开,但越多的人告诉他们某个特定错误,他们就越有可能注意到.)
-
明确一点:10.8 too 中存在该错误,您只是发现了省略
folder类型说明符的“漏洞”;关键是:它应该与folder类型说明符一起工作,并且使用该说明符是编写该命令的正确方式。使用tell application "Finder"而不是在 10.8 和 10.9 上都可以使用,并且通常是用于文件系统 操作 任务的方法。 -
更新:使用
Finder确实比使用System Events慢得多,尤其是在迭代文件夹中的项目时;也就是说,在手头的情况下,差异可以忽略不计。
标签: applescript osx-mavericks move file-move