You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让PNG转ICNS脚本适配本地/iCloud路径及含空格文件夹?

问题解决:修复Automator脚本在iCloud/含空格路径下的运行问题

修改后的脚本

#!/bin/sh

# 校验输入文件格式
if [ "${1##*.}" != "png" ] && [ "${1##*.}" != "PNG" ]; then
    echo "错误:仅支持PNG格式文件"
    exit 1
fi

s="$1"
NAME="${s%.*}"

ICONSET="$NAME.iconset"
mkdir -p "$ICONSET"

sips -z 1024 1024 "$1" --out "$ICONSET/icon_512x512@2x.png"
sips -z 512  512  "$ICONSET/icon_512x512@2x.png" --out "$ICONSET/icon_512x512.png"
sips -z 512  512  "$ICONSET/icon_512x512@2x.png" --out "$ICONSET/icon_256x256@2x.png"
sips -z 256  256  "$ICONSET/icon_512x512@2x.png" --out "$ICONSET/icon_256x256.png"
sips -z 256  256  "$ICONSET/icon_512x512@2x.png" --out "$ICONSET/icon_128x128@2x.png"
sips -z 128  128  "$ICONSET/icon_512x512@2x.png" --out "$ICONSET/icon_128x128.png"
sips -z 64   64   "$ICONSET/icon_512x512@2x.png" --out "$ICONSET/icon_32x32@2x.png"
sips -z 32   32   "$ICONSET/icon_512x512@2x.png" --out "$ICONSET/icon_32x32.png"
sips -z 32   32   "$ICONSET/icon_512x512@2x.png" --out "$ICONSET/icon_16x16@2x.png"
sips -z 16   16   "$ICONSET/icon_512x512@2x.png" --out "$ICONSET/icon_16x16.png"

iconutil -c icns "$ICONSET"

rm -rf "$ICONSET"

核心修改说明

  • 变量加双引号包裹:所有涉及路径、文件名的变量(如"$1"、"$ICONSET")都用双引号包裹,避免空格或特殊字符被Shell解析为参数分隔符,这是解决含空格路径问题的关键。
  • iCloud路径无需额外处理:macOS的iCloud文件夹本质是本地映射路径(~/Library/Mobile Documents/com~apple~CloudDocs/),Automator会直接传递正确的本地文件路径,只要变量引用规范就能正常识别。
  • 增强脚本健壮性:新增PNG格式校验避免误处理其他文件;用mkdir -p替代原mkdir,确保即使上级目录不存在也能正确创建iconset文件夹。

内容的提问来源于stack exchange,提问作者Skifess

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 01:52:23