0

我使用 automator 创建了一个简单的服务,它需要一个 *.tiff,从中创建一个 *.jpg,然后删除原始文件。

但是,我在 *.tiff 文件上运行它,它会继续运行,这意味着它会一遍又一遍地转换(然后是 jpg)文件。也就是说,我相信它确实如此,因为文件消失并重新出现大约每分钟 2 次,并且时间戳发生变化。我如何告诉它只运行一次服务(即 shell 命令)?

Automator 中的服务只是“运行 Shell-Script”类型的这一操作。Shell 脚本是

newName=${@%.tiff}.jpg
echo "$newName"
sips -s format jpeg "$@" --out "${newName}"
rm "$@"

谢谢!(会张贴 Automator 窗口的图片,但不允许)

4

1 回答 1

0

这种行为似乎是一个文件夹操作
如果您创建了文件夹操作:
1- 您必须过滤 TIFF 文件,因为该文件夹操作不会处理创建的 JPEG 文件。
2- 如果您在该文件夹中放置一个或多个文件,则必须使用循环。
3-仅当 sips 命令成功完成时,才使用“ && ”删除 TIFF 文件。

这是脚本:

for f in "$@";do
    if [[ "$f" = *.tiff ]]; then
        sips -s format jpeg "$f" --out "${f%.tiff}.jpg" && rm "$f"
    fi
done
于 2012-06-21T17:32:29.220 回答