从命令行显示对话框 我只是使用
$ osascript File.scpt
但是,进度条功能不限于对话框窗口,因为它适应当前应用程序,例如 Finder 窗口,其中进度更新显示在窗口底部。File.scpt看起来像这样。
set numUpdates to 100
set progress total steps to numUpdates
set progress completed steps to 0
set progress description to "Updating..."
set progress additional description to "Preparing to process."
set cycle to 1
repeat with a from 1 to numUpdates
# update description, completed steps, etc
end repeat
但是,当我从终端窗口运行脚本时,脚本运行,但没有显示任何指示进度。有没有办法强制进度条作为新对话框或类似的东西打开,而不必将脚本导出为".app"文件?
脚本编辑器可以在其窗口中显示进度而终端不能显示进度的原因是,脚本编辑器具有自己的扩展脚本定义和额外的功能,因此当脚本通过脚本编辑器运行时,它已使用额外的进度指示器进行了编程,但没有其他应用程序抱歉。在我看来,您几乎有 2 种我能想到的方法可以让您在 AppleScript 中显示"进度":
-
这有点丑陋,但我曾经只有一个透明的微调器 gif 文件,该文件将显示在对话框中,这将给人一种正在加载或工作的影响。 和一个按钮说什么都没有或OK,例如。
display dialog "Loading..." buttons:{"OK"} with icon ("/path/to/loader.gif" as POSIX file)
如果您想将其临时化,只需添加
giving up after (duration in seconds)
-
这可能是最好的选择,但可能更复杂。我建议你转移到一种叫做"AppleScript Objective C"的编程语言,也称为"Cocoa AppleScript"。这允许您将基本的AppleScript命令与Cocoa Windows/Dialogs/etc一起使用,包括进度条!首先,您应该下载Xcode并研究AppleScript Objective C,也许可以坚持下去。它比AppleScript更好,但仍然具有相同的功能:)