【问题标题】:How do I use the current folder name without a path as a variable in automator in Mac?如何在 Mac 的 automator 中使用没有路径的当前文件夹名称作为变量?
【发布时间】:2013-03-27 17:59:24
【问题描述】:

我使用的是 Mac OSX 10.8.3。

我在 Automator 中设置了如下工作流程:

  1. 请求查找器项目
  2. 获取文件夹内容
  3. 按顺序排列
  4. 移动查找器项目

工作流程的目的是自动重命名我保存在文件夹中的一堆照片,然后将它们移动到新文件夹。

我想获取文件夹名称并将其粘贴到一个变量中,然后在工作流程(见附件)图像的“生成顺序”部分的“新名称框”中使用该变量。

如何仅获取文件夹名称并将其分配给变量。我的示例有一个名为“FolderName”的变量

这是截图

【问题讨论】:

标签: macos variables directory automator


【解决方案1】:

这在测试中有效:

  1. 询问查找器项目 - 将类型设置为文件夹。
  2. 设置变量值 - 这将是从操作 1 获取的文件夹的路径
  3. 运行 Shell 脚本 - 设置 Pass 输入:作为参数。并使用 /usr/bin/basename "$1" 作为命令行获取文件夹名称
  4. 设置变量值 - 这将是所取文件夹的 folderName 从动作 3
  5. 获取变量的值 - 将获取的变量设置为路径

    5a。设置动作 5 忽略来自上述动作的输入 4 - Ctrl + 鼠标点击动作标题以获取上下文菜单

  6. 获取文件夹内容 - 获取从动作5传递的路径处文件夹的内容5

  7. 重命名 Finder 项目 - 设置为使顺序和新名称 = folderName 变量

您可以根据需要添加移动操作。

【讨论】:

    【解决方案2】:

    您可以使用Run Shell Script Action,代码如下:

    echo ${1##*/}
    

    并且Pass input: 设置为as arguments

    这将过滤传递的输入,只给出文件基名作为输出。

    您应该将此步骤放在设置FolderName 变量的操作之前。

    【讨论】:

      【解决方案3】:

      另一个简短的版本,用于获取文件夹名称并将其分配给变量。

      tell application "Finder"
          set currentDir to target of Finder window 1 as alias
          set posixDir to POSIX path of currentDir
          -- set myShell to "touch \"" & posix & "\"readme.txt"
          -- set result to (do shell script myShell)
      end tell
      

      【讨论】:

        猜你喜欢
        • 2015-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多