我正在尝试创建一个Automator Folder Action,以对放置在“文件夹A”中的所有音频文件进行规范化(至-3dB)并将其移至“文件夹B”。
Terminal中的以下内容达到了预期的结果:
第1步。
cd /Users/ray/Desktop/Folder\ A
第2步。
for file in *.aif; do sox $file --norm=-3 /Users/ray/Desktop/Folder\ B/$(basename $file) -V; done
基本上,如何将这个过程转换为“文件夹操作”?
在Automator中,我尝试过:
选择“文件夹A”作为输入,并将步骤2中的代码输入到Run Shell脚本中。我收到以下错误“找不到sox命令”。我假设这表明sox的安装位置存在问题(我使用HomeBrew做到了)。在Finder中进行搜索会在此处显示sox文件夹:
/usr/local/Cellar/sox
我尝试了各种命令来设置sox应用程序的路径。什么都没用。
可能还有其他问题。我不确定将“ Shell”设置为“是”还是将“传递输入”设置为“是”,或者不确定是否保留进行选择时显示的默认文本。 “猫”。
答案 0 :(得分:0)
将'Shell'保留为'/ bin / bash',但将'Pass Input'设置为'as arguments',然后粘贴
source ~/.profile
for file in "$@"
do
bname="${file##*/}"
sox --norm=-3 "$file" "/Users/ray/Desktop/Folder B/$bname"
done
然后一切正常,假设您的台式机上有一个“文件夹B”,而sox在您的$PATH
上。如果后者不成立,请按照您的建议使用完整的路径进行抽烟,或将/usr/local/Cellar
放在$PATH
上。
.profile
中有我的环境设置资料,所以我只提供了它。