如何在 Apple Script 中 运行 一个接一个地编写脚本

How to run one script after another in Apple Script

我正在尝试使用 Apple Script 来 运行 三种不同的脚本,这些脚本可以让我:

  1. 将购买的 m4a 文件转换为 "anonymized" m4a 文件并提取其插图(使用 ffmpeg)
  2. 将插图附加到之前转换的文件中,因为转换后的文件不会保留其插图(使用 AtomicParsley)
  3. 从他的路径中删除艺术品

我没有任何编程知识,我从网上收集了不同的脚本并尝试制作一个可以完成这 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

问题是,当我在应用程序上放置一个文件时,它会同时打开三个终端 windows 并且同时 运行 执行三个任务,结果很明显转换失败:第一个任务覆盖输入文件,第二个脚本应该使用第一个脚本的输出作为其输入文件。所以我需要三个脚本依次执行,一个接着一个

试试这个,它使用标准脚本添加命令 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