You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何为指定命令创建快捷方式?Automator获取文件夹名参数遇阻

解决Automator传递参数给mkwebdir脚本的问题

我明白你想把自己写的mkwebdir脚本做成随手就能用的快捷方式,不管是右键菜单触发还是适配Dropbox使用,却卡在了Automator传参这一步——别担心,我一步步教你搞定!

方法一:制作右键可用的快速操作(服务)

这是最贴合你需求的方式,做完之后不管在Finder(包括Dropbox文件夹)里右键,都能直接调用脚本并输入文件夹名:

  1. 打开Automator,新建一个快速操作(旧版macOS叫“服务”)
  2. 顶部“工作流程收到”下拉菜单选**“没有输入”(我们要弹窗让用户手动输入名称,不需要预先选文件/文本),同时确保“位于”选项选“Finder.app”**
  3. 从左侧动作库的“实用工具”里,拖入**“运行Shell脚本”**动作到右侧工作流区域
  4. 把Shell脚本的“传递输入”选项改成**“作为参数”**(这步是关键!很多人就是这里没设置对导致拿不到参数)
  5. 替换默认脚本内容为下面这段,它会弹出系统输入框让你填文件夹名,再调用你的脚本:
# 弹出系统输入框获取文件夹名称
FOLDER_NAME=$(osascript -e 'display dialog "请输入Web项目文件夹名称:" default answer "" buttons {"创建", "取消"} default button 1' -e 'text returned of result')

# 如果用户点击取消,直接退出脚本
if [ -z "$FOLDER_NAME" ]; then
    exit 0
fi

# 调用你的mkwebdir脚本,记得把路径改成你实际存放脚本的位置
# 比如脚本在/usr/local/bin里,直接写mkwebdir即可
/Users/你的用户名/path/to/mkwebdir "$FOLDER_NAME"
  1. 保存这个快速操作,命名为**“创建Web项目文件夹”**,之后你在Finder里右键(包括Dropbox文件夹内的空白处),就能在“服务”(或“快速操作”)菜单里找到它了!

进阶:在当前Finder窗口位置创建文件夹

如果你希望脚本在你当前打开的Finder窗口路径下创建文件夹,而不是默认位置,可以修改脚本为:

# 获取当前Finder窗口的路径
CURRENT_FOLDER=$(osascript -e 'tell application "Finder" to get POSIX path of (target of front window as text)')

# 弹出输入框获取文件夹名
FOLDER_NAME=$(osascript -e 'display dialog "请输入Web项目文件夹名称:" default answer "" buttons {"创建", "取消"} default button 1' -e 'text returned of result')

if [ -z "$FOLDER_NAME" ]; then
    exit 0
fi

# 切换到当前窗口路径,再调用脚本
cd "$CURRENT_FOLDER"
/Users/你的用户名/path/to/mkwebdir "$FOLDER_NAME"

你之前Automator失败的大概率原因

  • 没把“传递输入”设置为“作为参数”,导致脚本接收不到输入值
  • mkwebdir脚本不在Automator的PATH环境变量里,所以要么写脚本的绝对路径,要么把脚本移到/usr/local/bin这类系统默认PATH目录中

额外:制作桌面快捷方式

如果想要双击就能用的快捷方式,只要在Automator里新建**“应用程序”**,把上面的脚本放进去,保存到桌面就行——双击它就会弹出输入框,直接创建文件夹。

内容的提问来源于stack exchange,提问作者r.panta

火山引擎 最新活动