【发布时间】:2020-03-08 12:36:15
【问题描述】:
OSX 10.13.6、AI 2020、Applescript 编辑器版本 2.10 (194)、AppleScript 2.7
(认为这无关紧要,但我不准备升级操作系统,因为 NVidia 仍未发布系统使用的 TitanXP GPU 的驱动程序)。
在本次讨论中坚持使用 AppleScript。请不要提出“仅使用 JavaScript”的建议,除非您可以确认或否认 JavaScript 中也存在该问题。
我想知道 Adobe 是否已对其 Illustrator API 进行了更改,因为自从升级到新的 2020 版本以来,以前与早期版本的 Illustrator 一起使用的 Applescript 文件现在在通过别名引用时难以打开文件,或 posix 样式格式的变量。
InDesign 似乎没有受到影响,因为每次发生主要版本升级时,我都会在数百个 .INDD 文件上运行一个脚本,以防止下次使用它们时出现“另存为”对话框,这可能会搞砸脚本。该脚本仍然有效。还没有尝试过 Photoshop,但我使用的大部分自动化都是它们内部的“动作”形式。
经过一番研究,我认为他们可能已经修改了 HFS 支持,导致了意想不到的后果。
Illustrator 2020 可以打开由 posix 样式格式的硬编码字符串引用的文件,但无法从变量(HFS 样式别名或引用的 posix 样式字符串)打开同一个文件,即,
set theHFSPath to "Mac HD:Users:Mac User:Documents:Illustrator:myFile.ai"
set thePosixPath to quoted form of theHFSPath
# i.e., '/Volumes/Mac HD/Users/Mac User/Documents/Illustrator/myFile.ai'
Tell Application "Adobe Ilustrator"
# Opens OK
open POSIX file "/Volumes/Mac HD/Users/Mac User/Documents/Illustrator/myFile.ai" without dialogs
# Crashes with "Adobe Illustrator got an error: The specified file could not be opened because it could not be found"
open theHFSPath as alias without dialogs
# open (theHFSPath as alias) also crashes
# Crashes with "Adobe Illustrator got an error: File/Folder expected"
open POSIX file thePosixPath without dialogs
# open POSIX file (quoted form of thePosixPath)
# without quoting HFSPath above also crashes
End Tell
我怀疑 Adobe 可能丢弃了一个处理 HFS 的低级例程,并且由于该例程失败,打开命令无法“看到”打开它的文件。
关于“管”的内容不多,但我遇到过:
http://forum.latenightsw.com/t/apple-script-for-illustrator-2020-javascript-code-was-missing/2167
不到一周前,这似乎描述了同样的问题。
还有其他人遇到过这个问题,或者知道如何解决吗?
【问题讨论】:
-
既然你在 Hackintosh 上运行 macOS,我想任何事情都有可能发生。
-
A) 可以通过 Thunderbolt 运行外部 GPU。 B) 即使这是一个 Hackintosh,它也与新行为无关。 Applescript 的操作系统或版本都没有改变。只有 AI 不同。
-
1. “错误”!=“崩溃”。 2.
quoted form of theHFSPath应为POSIX path of theHFSPath。 3. 确保路径指向有效文件。 4. 尝试将POSIX file说明符移到tell application…块之外,例如set f to POSIX file "/Users/foo/myFile.ai" ; tell app "Adobe Illustrator" to open f. -
很确定这是崩溃,而不是编码错误。请参阅帖子中的代码。作为 POSIX 样式的硬编码字符串,它会打开。作为设置为 EXACT SAME STRING 的变量,无论是否引用,它都会崩溃。作为 HFS 样式的别名,它也会崩溃。在 AI 2019 中,它将作为别名打开 OK(显然没有引用)。在 AI 2019 中运行的相同代码和相同文件,现在在 AI 2020 中中断。
-
“Crash”表示进程异常退出。 “Adobe Illustrator 出现错误:预期的文件/文件夹”是一个错误;该过程无法执行请求的操作并告诉您。此处的区别很重要,因为如果 Illustrator/Script Editor 崩溃,那么这是应用程序本身的一个致命错误——不是你的错——你应该提交报告。 OTOH,如果 SE 在您的脚本底部显示错误消息,那要么是 AI 的
open处理程序中的(非致命)错误,要么是您自己的 AppleScript 代码中的错误。澄清崩溃与错误有助于我们缩小原因。
标签: applescript adobe adobe-illustrator