0

我一直在修改一个脚本,该脚本使用sips从 Finder as a Service中方便地调整 JPEG 文件压缩。与简单的 Automator 压缩/重新缩放功能不同,它维护文件标记。

唉,它偶然发现了某些文件名,例如带有空格的文件名,并且不会重新调整它们,大概是因为文件输出阻塞了空格字符。因此,它在“ DSC03761.JPG ”之类的文件上按预期进行,在“ DSC03761 2.JPG ”上却没有。如果路径包含空格,例如文件位于名为“我的图片”的文件夹中,它也会失败。

由于我是菜鸟,我还没有弄清楚如何调整脚本。你可能有更好的主意?

脚本截图

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"
4

1 回答 1

0

在这里,您正确但不必要地引用了扩展:

  t="$(/usr/bin/GetFileInfo -d "$f")"

但是在这里,您需要使用引号,您不需要:

  /usr/bin/sips --setProperty formatOptions 60 $f --out ${filename%.*}.jpg

后者应该是

  /usr/bin/sips --setProperty formatOptions 60 "$f" --out "${filename%.*}.jpg"
于 2016-05-21T18:36:23.843 回答