如何在 Apple Script 中 运行 一个接一个地编写脚本
How to run one script after another in Apple Script
我正在尝试使用 Apple Script 来 运行 三种不同的脚本,这些脚本可以让我:
- 将购买的 m4a 文件转换为 "anonymized" m4a 文件并提取其插图(使用 ffmpeg)
- 将插图附加到之前转换的文件中,因为转换后的文件不会保留其插图(使用 AtomicParsley)
- 从他的路径中删除艺术品
我没有任何编程知识,我从网上收集了不同的脚本并尝试制作一个可以完成这 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
我正在尝试使用 Apple Script 来 运行 三种不同的脚本,这些脚本可以让我:
- 将购买的 m4a 文件转换为 "anonymized" m4a 文件并提取其插图(使用 ffmpeg)
- 将插图附加到之前转换的文件中,因为转换后的文件不会保留其插图(使用 AtomicParsley)
- 从他的路径中删除艺术品
我没有任何编程知识,我从网上收集了不同的脚本并尝试制作一个可以完成这 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