0

automatorを使用して、*。tiffを取得し、そこから* .jpgを作成してから、元のサービスを削除する簡単なサービスを作成しました。

ただし、これを* .tiffファイルで実行すると、実行が継続されます。つまり、(その後jpg)ファイルが何度も変換され続けます。つまり、ファイルが1分間に約2回消えて再表示され、タイムスタンプが変更されるため、そうなると思います。サービス(つまりシェルコマンド)を1回だけ実行するように指示するにはどうすればよいですか?

Automatorのサービスは、「シェルスクリプトの実行」タイプのこの1つのアクションです。シェルスクリプトは

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

ありがとう!(Automatorウィンドウの写真を投稿していましたが、許可されていませんでした)

4

1 に答える 1

0

この動作はフォルダアクションのようです。
フォルダアクションを作成した場合:
1-そのフォルダアクションが作成されたJPEGファイルを処理しないようにTIFFファイルをフィルタリングする必要があります。
2-そのフォルダに1つ以上のファイルをドロップする場合は、ループを使用する必要があります。
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 に答える