是否在命令行的单独窗口中运行AppleScript进度条?

是否在命令行的单独窗口中运行AppleScript进度条?,applescript,Applescript,要从命令行显示对话框,我只使用 $ 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..." s

要从命令行显示对话框,我只使用

$ 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”文件?

脚本编辑器可以在其窗口中显示进度,而终端不能显示进度的原因是脚本编辑器有自己的扩展脚本定义和额外的功能,因此当脚本通过脚本编辑器运行时,它已经用额外的进度指示器编程,但没有其他应用程序。在我看来,我可以想出两种方法让你在AppleScript中显示“进度”:

  • 这有点难看,但我以前只有一个透明的微调器gif文件,它会显示在一个对话框中,这会给人一种加载或工作的感觉。一个按钮什么也没说或没问题

    display dialog "Loading..." buttons:{"OK"} with icon ("/path/to/loader.gif" as POSIX file)
    
    如果你想暂时放弃,只需添加
    放弃(持续时间以秒为单位)

  • 这可能是最好的选择,但可能更复杂。我建议您转换到一种称为“AppleScript Objective C”的编程语言,或者称为“Cocoa AppleScript”。这允许您将基本的AppleScript命令用于包括进度条在内的Cocoa窗口/对话框/等!。首先,您应该下载Xcode并研究AppleScript Objective C,也许还应该坚持下去。它比AppleScript好,但仍具有相同的功能:)


  • 没有。osx没有像带有进度条的对话框那样提供窗口。为此,您需要创建一个应用程序或以文本形式输出进度,并且没有办法将进度条绑定到对话框?那太不幸了。感谢您的建议,但我选择AppleScript是因为我的bash脚本中不需要包含其他文件。