私は、sipsを使用して Finder as a Service内から便利に JPEG ファイル圧縮を調整するスクリプトをいじっています。単純な Automator 圧縮/再スケーリング機能とは異なり、ファイル スタンプを維持します。
悲しいかな、特定のファイル名、たとえばスペースのあるファイル名に出くわし、おそらくファイル出力がスペース文字でチョークするため、それらを再スケーリングしません。そのため、「 DSC03761.JPG」のようなファイルでは正常に処理されますが、「 DSC03761 2.JPG」では正常に処理されません。たとえば、ファイルが「my Pictures」というフォルダにある場合など、パスにスペースが含まれている場合にも失敗します。
私は初心者なので、スクリプトを調整する方法がわかりませんでした。あなたはおそらくもっと良い考えを持っていますか?
以下のbashスクリプト:
for f in "$@"; do
# Save creation date time stamp of the target file in 't'.
t="$(/usr/bin/GetFileInfo -d "$f")"
# Compress the target file. Level 0-100 or low/normal=50/high/best
filename=$f
#/usr/bin/sips --setProperty formatOptions 60 $f --out ${filename%.*}.jpg
/usr/bin/sips --setProperty formatOptions normal $f --out ${filename%.*}.jpg
# Set the modified and creation date time stamps to 't'.
/usr/bin/SetFile -m "$t" "$f"
/usr/bin/SetFile -d "$t" "$f"
done
# Notify user that operation is finished with a sound.
/usr/bin/afplay "/System/Library/Sounds/Purr.aiff"