【问题标题】: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 中设置了如下工作流程:
- 请求查找器项目
- 获取文件夹内容
- 按顺序排列
- 移动查找器项目
工作流程的目的是自动重命名我保存在文件夹中的一堆照片,然后将它们移动到新文件夹。
我想获取文件夹名称并将其粘贴到一个变量中,然后在工作流程(见附件)图像的“生成顺序”部分的“新名称框”中使用该变量。
如何仅获取文件夹名称并将其分配给变量。我的示例有一个名为“FolderName”的变量
这是截图
【问题讨论】:
标签:
macos
variables
directory
automator
【解决方案1】:
这在测试中有效:
-
询问查找器项目 - 将类型设置为文件夹。
-
设置变量值 - 这将是从操作 1 获取的文件夹的路径。
-
运行 Shell 脚本 - 设置 Pass 输入:作为参数。并使用 /usr/bin/basename "$1" 作为命令行获取文件夹名称
-
设置变量值 - 这将是所取文件夹的 folderName
从动作 3。
-
获取变量的值 - 将获取的变量设置为路径
5a。设置动作 5 忽略来自上述动作的输入 4 - Ctrl + 鼠标点击动作标题以获取上下文菜单
-
获取文件夹内容 - 获取从动作5传递的路径处文件夹的内容5
-
重命名 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