Automator复制路径在REAPER中粘贴异常,需中转文本编辑器问题求助
问题分析与解决方案
核心问题
问题根源有两点:
- Shell脚本引号错误:原脚本中使用了中文双引号
”$@”,导致参数解析异常,生成的路径格式不符合预期。 - 剪贴板数据类型不兼容:Automator默认的「复制到剪贴板」动作会写入多种数据格式(如Finder文件引用、富文本),而REAPER的文本字段仅支持纯文本;当你粘贴到文本编辑器再复制时,剪贴板会被替换为纯文本格式,因此能正常粘贴。
解决方案一:修复Automator脚本并直接写入纯文本剪贴板
修改Shell脚本,使用英文引号,并通过pbcopy直接输出纯文本到剪贴板,替代Automator自带的「复制到剪贴板」动作:
# 必须使用英文双引号解析参数 for f in "$@" do # 输出带双引号的标准路径格式 echo "\"$f\"" done | pbcopy
操作步骤:
- 打开你的Automator服务,删除原有的「复制到剪贴板」动作
- 替换为上述脚本内容后保存服务,重新测试即可
解决方案二:修改AppleScript强制读取纯文本剪贴板
如果不想调整Automator服务,可修改AppleScript代码,明确将剪贴板内容转换为纯文本后再写入REAPER文本字段:
将所有set the value of its attribute "AXSelectedText" to the clipboard的行,替换为:
set the value of its attribute "AXSelectedText" to (the clipboard as text)
示例修改片段(以Save窗口为例):
tell text field "Save As:" of window "Save" of application process "REAPER" to set the value of its attribute "AXSelectedText" to (the clipboard as text)
额外优化建议
- 检查权限:确保「系统设置>隐私与安全性>辅助功能」中已勾选QuicKeys和REAPER,避免权限不足导致AppleScript无法操作文本字段
- 简化逻辑:若无需保留原文本框选中内容,可直接覆盖文本值,无需先读取选中内容
内容的提问来源于stack exchange,提问作者Max Well
相关产品推荐
相关产品推荐

