如何在Apple Script中运行一个接一个的脚本

时间:2015-07-18 21:30:32

标签: ffmpeg applescript itunes m4a

我正在尝试用Apple Script运行三个不同的脚本,这些脚本会让我:

  1. 将购买的m4a文件转换为“匿名”m4a文件并提取其作品(使用ffmpeg)
  2. 将作品附加到先前转换的文件,因为转换后的文件不会维护其作品(使用AtomicParsley)
  3. 从路径中移除艺术作品
  4. 我没有任何编程知识,我从网上收集了不同的脚本,并尝试制作一个可以执行以下3个简单任务的应用程序:

    on open argv
       set paths to ""
       repeat with f in argv
           set paths to paths & quoted form of POSIX path of f & " "
       end repeat
       tell application "Terminal"
            do script "for f in " & paths & "; do ffmpeg -i \"$f\" -acodec copy -y \"$f\" output.jpg; done"
            activate
            do script "for f in " & paths & "; do AtomicParsley \"$f\" --artwork output.jpg; done"
            activate
            do script "rm output. jpg"
            activate
       end tell
     end open
    

    问题在于,当我在应用程序上删除文件时,它会立即打开三个终端窗口并同时运行三个任务,结果显示转换失败:第一个任务会覆盖输入文件,第二个脚本应使用第一个脚本的输出作为其输入文件。所以我需要一个接一个地连续执行三个脚本。

1 个答案:

答案 0 :(得分:0)

试试这个,它使用标准脚本添加命令do shell script来运行shell脚本而无需打开Terminal.app

on open argv
    repeat with anItem in argv
        set anItemPath to quoted form of POSIX path of anItem
        do shell script "ffmpeg -i " & anItemPath & " -acodec copy -y " & anItemPath & " output.jpg"
        do shell script "AtomicParsley " & anItemPath & " --artwork output.jpg; rm output. jpg"
    end repeat
end open