【261】44周 新建成组文件夹的自动化做法与思路

Minja
07月03日

新建成组文件夹的自动化做法与思路

| 本文为付费栏目文章,您已订阅,可阅读全文 |
编注:
在上周我们试推行了「你工作中的自动化定制」项目,收到了部分读者提出的需求。Power+ 小组随后与每个提出需求的读者都进行了联系。在进一步明确对方需求之后,首先解决其问题,进而选取其中有借鉴意义的场景写成文章,以供其他读者参考。
我们深知 Power+ 的读者中有不少 Windows 用户,在未来我们也会尽量多地增加 Windows 的内容,但很遗憾本文也是用的 macOS 上的 Automator 作为演示。不过这类内容重点不只是局限于某个系统的做法,而是它的思路。


读者 @Charlsy 问:
我是一名(准)设计师,最近遇到的一个问题就是在每一次开始做一个新的项目时,总是要重复新建几个同样名字的新文件夹来储存不同性质的文件,从而进行管理和归类(01-Layout, 02-Asset, 03-Resource, etc.),这个时候就觉得如果能够有一个一键新建文件夹模板就好了。
相信在文件整理中,文件夹的创建总是一件让人头疼的事。其实这种重复劳动很多的工作,非常适合教给自动化工具来做。
这篇文章中,我将用 macOS 自带的 Automator 来解决文件夹的创建问题;同时,我们将通过这个例子了解 Automator 中输入输出变量的概念。

动作概览

我们先直接来看看最后的效果演示。只需要双击这个 Automator App,就能在桌面上新建一个文件夹,其中包含了 01-Layout、02-Asset、03-Resource 三个子文件夹。
自动创建新文件夹
用 Automator 打开这个 App,就能够看到其中的步骤。你可以根据自己的需求,把其中 01-Layout 等文件夹的名字改成自己需要的。你也可以减少或增加「新建文件夹」步骤的数量(直接复制粘贴就能增加,按删除键就能减少),来自由增减子文件夹的数量。

步骤
这是个简单的 Automator,步骤不多,但涉及了两个关键的概念:
  1. 输入输出,创建子文件夹的步骤忽略了上一步输出的结果,避免了前一步结果带来的影响。
    忽略输入
  2. 变量,可以把几乎任何文本、图片和文件设为变量,在 Automator 流程中轻松调用。
    变量
了解整个 Automator 的大致原理和使用方式后,我们接下来重点关注这两个概念。

关键概念解析

为什么说输入输出和变量是 Automator 中的关键概念?在此介绍它俩之前,我们可以先简单看一下 Automator 最基本的工作方式是怎样的:

Automator 工作起来就像一系列流水车间
如上图所示,Automator 通过一系列流水线一样的步骤,把输入的文本、链接或者文件等内容进行一步一步的处理,上一步处理好了就交给后续的步骤,直到最后导出一个或一批成品。
但是这样一根肠子通到底的线性工作方式在 @Charlsy 的工作场景中是无法解决问题的,因为创建完第一个子文件夹后,你如果直接在后面接上「新建文件夹」步骤,就会发现其他的文件夹是一个套一个出现在子文件夹中,这显然不符合我们的要求。

错误的文件夹
解决方式就是通过调整输入输出、设置和调用变量,来突破原先线性的工作流。

输入和输出

Automator 中的每一步都可以有输入和输出,就像工厂中的车间,既能够接收上游的原料来开工,也可以拿出加工好的产品(除非这个车间出了问题)交给下一个车间。
在任意两步之间,你都可以看到如下图的连接部分(默认会有),这表示下一步接受了上一步的输出。

接受输入
在创建文件夹的 Automator 中,第一步「新建文件夹」的输入不是必需的,因为它不处理任何文件,直接就能在桌面创建新文件夹;而它的输出,则是刚刚建好的文件夹 设计
不过在这个 Automator 中,我们没有接着继续创建文件夹,而是把上一步的 设计 输出到「设定变量的值」这一步中(下一节再讲)。重点请看最后的三个「新建文件夹」步骤,它们都是没有输入的(和上一步没有连接):

不接受上一步的输入
这就避免了创建文件夹的步骤被上一步影响而出现「一个套一个」的错误结果。那没有了上一步的结果,如何指定新文件夹创建的位置呢?接下来就该变量 出场了。

设置和调用变量

变量可以视为各个车间之间的「直通车」,只要是前面任一步骤出现过的、甚至电脑中的任何文本或文件,都可以设为变量,一个 Automator 步骤不用傻傻上一步给它输入「原料」,直接调用变量就能对后者进行处理。
设置变量的方法很简单,在任何一步后面接上「设定变量的值」,就可以把这一步的输出设成变量,加下来的步骤不一定要接在它下面也能使用它输出的结果。

设定变量
我们的这个 Automator 动作中,第一步「新建文件夹」输出的结果是 设计 文件夹所在的路径,我们设置的变量 path(路径)就代表了这一文件夹在电脑中的位置。
接下来的事就好办了,在每一个创建子文件夹的步骤中,都把「位置」指定为「path」就行。变量的运用很简单,首先点击下图所示的按钮,打开变量界面,所有已经设定过的变量都会出现在这里:

显示变量
接着把变量拖到需要使用的地方,就能调用变量了:

使用变量
至此,我们就突破了线性工作流的限制,学会了在 Automator 中灵活运用输入输出与变量。

上一期
第 44 周预告:电子设备会影响你的睡眠吗?
下一期
进度条,能准吗? | 科普
 
精选评论(3) 我的评论
  • Charlsy
    Cool!看完之后自己跟着思路从头做了一个,完全可以实现需求了,很棒哈哈哈!不过还有一个小小的问题,就是我发现文件夹的名字里不能含有「/」这个符号,不然就会报错说 The file “/号后的内容” doesn’t exist。虽然最后我用别的符号代替了,但并不是很理解这里的逻辑,可以请教一下是为什么以及如何解决吗~
    07月05日
    • 少数派编辑部
      「/」符号会被识别成路径的分隔符,解决这个问题可能需要用到脚本。以后会专门有文章来讲 Automator 中脚本的使用。

      —— Minja
      07月05日
  • zhangallen
    弱弱的问一下,把这些需要的文件夹建好空白的,放在项目文件夹的根目录,每次有新项目需要建的时候,直接拷贝过去不就行了吗。。。这么费劲干嘛呢。。。当然,这个思路可以学习着。。
    07月04日
    • 少数派编辑部
      直接拷贝也是可以的,但是保留一个「模版文件夹」可能在日常整理文件时造成误解。总体来说,使用自动化工具或许是一个更清爽的方案
      07月04日
  • Mirko214
    Minja桑总是可以用通俗易懂的语言来解释一些技术性的概念,向您学习
    07月04日