AppleScript中的增量进度条

时间:2013-06-29 08:06:59

标签: macos shell progress-bar applescript

我有一个使用“SKProgressbar”的应用。我希望在其中运行的第二个shell脚本的进程中有10个基于的进度条增量。我不确定这是否可行。我在下面提供了脚本。我是新手。

    on open adisk
    set terminalcommand to "cd " & quoted form of (POSIX path of adisk) & " ; find . -name '.DS_Store' -type f -delete"
    do shell script terminalcommand
    set xxx to "cd " & quoted form of (POSIX path of adisk) & " ; find * -type f -exec md5 -r {} \\; > *New_File.md5"
    set iconPath to ((path to me) as text) & "Contents:Resources:droplet.icns"

    tell application "SKProgressBar"
        activate
        set floating to false --> default is true
        set position to {500, 550} --> default is {1000, 750}, origin point is bottom left
        set width to 400.0 --> default is 500.0
        set title to "CreateMD5"
        set header to "Processing..."
        set header alignment to center
        set footer to "" --> default is empty string
        set footer alignment to center -->  default is left
        -- image path can be HFS or POSIX path, default is missing value (no image)
        set image path to iconPath
        tell progress bar
            set minimum value to 0.0 --> default is 0.0
            set maximum value to 100.0 -->  default is 100.0
            set current value to 0.0 --> default is 0.0
        end tell
        set show window to true --> default is false
        tell progress bar
            set indeterminate to false --> default is true
            start animation
            increment by 10.0
            do shell script xxx
            stop animation
        end tell
        quit
    end tell
    activate
    display dialog "        MD5 Complete!" with icon 1 buttons {"Close", "Open Directory"} cancel button 1 default button 2
    tell application "Finder"
        open adisk
    end tell
end open

对此的任何帮助都会很棒。如果简单的答案是否定的,那么我将继续前进并尝试解决问题。

1 个答案:

答案 0 :(得分:0)

我不熟悉SKProgressbar的工作原理,但是如果它在脚本结束后没有重置所有内容,你能不能扭转整个过程?而不是试图从applescript中运行bash脚本,为什么不制作一个仅仅增加一个条形的AppleScript,然后让bash脚本在整个代码中调用它?

例如

#/Users/user_name/Desktop/update_progbar.scpt
on run()
    tell application "SKProgressBar"
        activate
        tell progress bar
            increment by 10.0
        end tell
    end tell
end

然后

#!/bin/bash
#/Some/Location/my_bash_script.sh
for x in {1..10}; do
    #do stuff here
    osascript /Users/user_name/Desktop/update_progbar.scpt
done