原谅一个新手问题。我搜索过高低,但没有发现类似的情况。
我正在尝试创建一个自动流程,我可以在其中添加关键字到jpg图像。
我使用Hazel来监控Mac上的文件夹,当它找到文件时,它会调用Automator工作流脚本。因此脚本已经收到一个参数(文件名和路径)
shell脚本执行以下命令(使用pass input:as arguments)(shell:/ bin / bash)
for f in "$@"
do
exiftool -keywords=myKeyWord "$1"
exiftool -delete_original! "$1"
done
到目前为止一切正常。我无法弄清楚如何从Automator传递第二个参数,允许我从对话框中输入关键字。
我尝试了一个文本字段(操作:询问文本),并更新了硬编码的值' myKeyWord'使用" $ 2",但它给出了一个错误说明" 1个文件由于错误而未更新"
非常感谢任何帮助。
提前致谢,
托马斯
答案 0 :(得分:1)
为脚本的每个参数迭代循环。但是,在循环内只使用了第一个参数:$1
而不是$f
。因此,如果您使用3个参数调用脚本,则会执行以下操作:
exiftool -keywords=myKeyWord "$1"
exiftool -delete_original! "$1"
exiftool -keywords=myKeyWord "$1"
exiftool -delete_original! "$1"
exiftool -keywords=myKeyWord "$1"
exiftool -delete_original! "$1"
也许你的意思是做这样的事情(没有循环)?只是猜测:
exiftool -keywords="$2" "$1"
exiftool -delete_original! "$1"