Mac-自动操作-右键新建文本文档txt+重命名弹窗

PS:原始流程由ai完成,测试和debug由本人完成,正文部分是最终结果
macOS:14.0

本来不想写这篇的, 因为相关的文章在CSDN上有很多,但不知道为什么能跑通的不符合我的使用需求,所以最后还是写了这一篇。

以下步骤主要实现三个需求:

1. 右键新建文本文档txt

2. 弹出重命名弹窗

3. 重命名弹窗中默认已有README字符

4.(可选)若此目录下有重名,并不会生成新的文件

 

目录

实现前三个需求的版本

添加AppleScript操作

 实现所有四个需求的版本

添加AppleScript操作


实现前三个需求的版本

在macOS上创建快捷操作(Quick Action)来实现右键菜单选项,可以使用Automator应用。以下是具体步骤,帮助你在当前目录下新建文本文档:

  1. 打开Automator应用:

    • 你可以在Launchpad中找到Automator,或者使用Spotlight搜索(按Cmd + 空格键,然后输入“Automator”)。
  2. 创建新的文稿:

    • 在Automator中,选择“新建文稿”。
  3. 选择类型:

    • 在弹出的窗口中,选择“快速操作”(Quick Action),然后点击“选择”。
  4. 设置工作流程:

    • 在顶部的“工作流程收到当前”下拉菜单中,选择“文件或文件夹”。
    • 在右边的“工作流程”区域,点击“添加输入”,并选择“Finder.app”。
  5. 添加AppleScript操作

    • 在左侧的操作库中,找到并拖动“运行AppleScript”操作到右侧的工作流程区域。
    • 在“运行AppleScript”操作中,输入以下脚本:
      on run {input, parameters}
          set defaultAnswer to "README"
          set dialogText to "请输入文本文档的名称:"
          set fileName to text returned of (display dialog dialogText default answer defaultAnswer)
          
          repeat with f in input
              set filePath to POSIX path of (f as alias)
              set parentPath to do shell script "dirname " & quoted form of filePath
              set newFilePath to parentPath & "/" & fileName & ".txt"
              do shell script "touch " & quoted form of newFilePath
          end repeat
          
          return input
      end run
      

      这个版本使用了 dirname 命令来获取父目录路径

  6. 保存快速操作:

    选择“文件” > “存储”,为你的快速操作命名,例如“新建文本文档”,然后点击“存储”。
  7. 使用快速操作:

    打开Finder,选择一个文件夹,右键点击,然后在菜单中选择“快速操作” > “新建文本文档”。这将会弹出一个对话框,允许你输入文本文档的名字,默认名称为“README”,并在选中的文件夹中创建一个以你输入的名字命名的文本文档。

 实现所有四个需求的版本

基本操作同上,只需改动AppleScript代码。

添加AppleScript操作

以下是修改后的AppleScript代码,包含检查文件名是否重复的步骤:

on run {input, parameters}
    set defaultAnswer to "README"
    set dialogText to "请输入文本文档的名称:"
    
    repeat
        set fileName to text returned of (display dialog dialogText default answer defaultAnswer)
        
        set fileExists to false
        repeat with f in input
            set filePath to POSIX path of (f as alias)
            set parentPath to do shell script "dirname " & quoted form of filePath
            set newFilePath to parentPath & "/" & fileName & ".txt"
            
            -- 检查文件是否存在
            try
                do shell script "test -e " & quoted form of newFilePath
                set fileExists to true
            end try
        end repeat
        
        if fileExists then
            display dialog "文件名已存在,请选择不同的文件名。" buttons {"OK"} default button "OK"
        else
            exit repeat
        end if
    end repeat
    
    -- 创建新文件
    repeat with f in input
        set filePath to POSIX path of (f as alias)
        set parentPath to do shell script "dirname " & quoted form of filePath
        set newFilePath to parentPath & "/" & fileName & ".txt"
        do shell script "touch " & quoted form of newFilePath
    end repeat
    
    return input
end run

这个脚本在创建文件之前检查父目录中是否已经存在同名文件。如果存在,用户将被提示输入不同的文件名,直到输入的文件名不重复为止。

最终窗口如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值