如何在Mac的自动化应用程序中,使用当前文件夹名称而不包括路径作为一个变量?

14

我正在使用Mac OSX 10.8.3。

我有一个Automator工作流程,如下所示:

  1. 要求Finder项目
  2. 获取文件夹内容
  3. 创建顺序编号
  4. 移动Finder项目

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

我想抓取文件夹名称并将其放入变量中,然后在"Make Sequential"部分的"new name box"中使用该变量(请参见附图)。

如何仅获取文件夹名称并将其赋值给变量。我的示例有一个名为"FolderName"的变量。

这里是一个截图 screen shot


我认为你在http://apple.stackexchange.com/上提出问题会更有好运。 - Tonny Madsen
你是从哪里/如何选择这个新文件夹的? - markhunte
3个回答

16

这在测试中起作用:

  1. 请求 Finder 项目-将类型设置为文件夹。
  2. 设置变量值-这将是从动作1中获取的文件夹路径
  3. 运行 Shell 脚本-将 Pass input 设置为:作为参数。并使用 /usr/bin/basename“$1”作为命令行来获取文件夹名称。
  4. 设置变量值-这将是从动作3中获取的文件夹folderName
  5. 获取变量值-将变量设置为获取值的变量path

    5a. 将操作5设置为忽略来自上述操作4的输入-使用鼠标单击操作标题以获取上下文菜单

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

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

enter image description here

您可以随意添加 Move 操作。


5
您可以使用一个“运行Shell脚本操作”,并使用以下代码:

您可以使用一个运行Shell脚本操作,并使用以下代码:

echo ${1##*/}

同时设置 Pass input:as arguments

enter image description here

这将过滤传递的输入,只输出文件基本名称。

您应在设置 FolderName 变量的操作之前执行此步骤。


1

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

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

screenshot


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接