AppleScript脚本无法修改Apple Music选中曲目英文大小写问题求助
问题分析与修复方案
可能的原因及解决步骤
1. 权限不足(最常见原因)
AppleScript需要获得控制Music的权限才能修改曲目信息,按以下步骤检查:
- 打开「系统偏好设置」→「安全性与隐私」→「隐私」标签页
- 选择左侧列表的「自动化」
- 在右侧找到你的脚本运行工具(比如「Script Editor」),确保「Music」对应的复选框已勾选
2. 正则逻辑优化(确保符合需求)
原脚本的Perl正则未针对全大写单词做排除处理,复杂场景下可能不符合预期。修改正则后,可确保仅对非全大写的单词应用首字母大写规则,全大写内容保持原样:
修改后的properEnglishCapitalization函数:
on properEnglishCapitalization(textString) set newText to do shell script "echo " & quoted form of textString & " | perl -pe 's/(?<=\\b|^)(\\w+)(?!\\p{Lu}*\\b)/\\u$1/g'" return newText end properEnglishCapitalization
3. 脚本逻辑优化(确保修改生效)
去掉多余的属性操作,增加激活Music和日志输出的逻辑,确保选中曲目被正确识别和修改:
on properEnglishCapitalization(textString) set newText to do shell script "echo " & quoted form of textString & " | perl -pe 's/(?<=\\b|^)(\\w+)(?!\\p{Lu}*\\b)/\\u$1/g'" return newText end properEnglishCapitalization tell application "Music" activate -- 确保Music处于激活状态,正确获取选中曲目 set selectedTracks to selection if selectedTracks is not {} then repeat with aTrack in selectedTracks set trackName to name of aTrack set newName to my properEnglishCapitalization(trackName) if newName is not trackName then set name of aTrack to newName log "修改曲目名称:" & trackName & " → " & newName -- 调试日志,可在Script Editor控制台查看 end if end repeat display dialog "已完成" & (count of selectedTracks) & "首曲目的名称修正" else display dialog "请先在Music中选中至少一首曲目" end if end tell
4. 验证选中状态
运行脚本前,确保Music中选中的是具体曲目(而非播放列表、专辑等),且Music处于前台激活状态。
内容的提问来源于stack exchange,提问作者Danny Shepherd
相关产品推荐
相关产品推荐

