如何在 Windows 上实现自动化?让这些工具帮助你

Posted by 沨沄极客 on February 3, 2018

如何在 Windows 上实现自动化?让这些工具帮助你

Windows 作为全球覆盖范围最广、个人用户量最高的操作系统。它代表着最广泛的生产力,自动化的工作流程自然是少不了的。这里就为你介绍一些 Windows 上的优质的自动化工具。

由于每个人的需求不同,自动化的流程也不尽相同,所以本文不会讨论具体的流程和案例,仅对工具进行介绍。

简单易上手的自动化工具

大多数人选择工具时更倾向于直观的、低门槛的工具,这类工具简单实用且容易上手。Windows 上的选择很多,这里选取两个最有代表性的工具:Microsoft Flow 和 Windows 计划任务,分别负责 网络服务本地自动化 两个部分。

网络服务流:Microsoft Flow

01-MF

Microsoft Flow 是微软在 2016 年 6 月份推出的功能,经过一年多的发展,已经成为了相当不错的自动化工具。它的使用方式与 Workflow 和 IFTTT 非常相似,Microsoft Flow 的主要功能是 串联各种网络服务 ,围绕着 Office 套件、邮件、各类国外网盘、国外社交软件展开的工作流。

Microsoft Flow 支持 204 项接入服务,IFTTT 则提供了 573 项接入服务。单从数量上来看,后者远超前者,但在实际使用过程中体会不到差别,因为需要用到的常用服务类似,起到决定性作用的是那些「独占」服务。Microsoft Flow 中对于 微软自身的服务 提供了非常多的支持,其中不乏 Todoist、Github 等优秀的应用,还有自家的 Outlook、OneNote,并全线支持了微软的 Azure 云计算平台。如果你的全套工作流程都是基于微软的工具,那么 Microsoft Flow 比 IFTTT 更适合你。

02-MF

Microsoft Flow 的特点是类似于 Workflow 的 多步骤操作,在服务之间可以做到 顺序结构、条件判断、循环操作,不像 IFTTT 单个机器人只支持触发条件和具体操作两个步骤。在流程中加入了类似 Magic Variable 的功能,可以将流程中用到的变量直接添加到 Flow 中。这就大大扩展了它能给我们带来的功能。微软希望通过这样的设计使 Flow 达到一种可编程可定制的效果。

此外,在 Microsoft Flow 中,除了上面提到的常规网络服务,还添加了对文件系统、文本分析、FTP 的支持,还有变量、控件、数据操作等便于用户进行更精细化调整的工具,将网络服务与本地进行了结合,使得 PC 本地文件在本地配置网关之后也可以加入 Flow 中,这是它与 IFTTT 最大的区别。

总体而言,Microsoft Flow 更像是一个 Workflow 和 IFTTT 的集合体,将多项网络服务打通、串联,实现一套完整的工作流。

本地自动化:Windows 计划任务

02-Microsoft-Flow

其实 Windows 本身自带了自动化功能,这就是 Windows 计划任务

不过说实话很少有人用到它。一方面是 Windows 没有对这个功能做太多引导,另一方面 Windows 的用户会习惯性关机,导致一些任务无法执行,久而久之也就放弃了它。目前已经沦为软件自动更新的主阵地。

实际上 建立计划任务很简单,设定触发器、设定启动时的操作、设定脚本或者程序,就可以达到想要的效果。比较实用的计划任务有「开机启动 WiFi」「定时关机」「自动备份文件到移动硬盘」等。

除了基本功能,还可以添加 更具体的触发条件和限制,「PC 空闲 10 分钟后再启动任务」「运行时间超过 3 天自动停止」都是一个多选框的事。

如果对批处理比较熟悉,可以试试 更高级的使用方法:写一个 .bat 脚本交给它运行。这样就可以执行一连串的任务,适用的场景会更多。比如实现定时清理各处的缓存文件、关闭后台程序提高运行速度、断网时自动检测网络状态并生成报告等一系列功能。

专用自动化工具

本地效率工具 Listary

Windows 中自带搜索功能很慢,为提升效率就需要用到一些额外软件。

04-1-Listary搜索

Listary 是 一款集搜索与调用为一体的效率工具。它的主要功能是 增强文件浏览和搜索功能,可以完成在文件资源管理器中快速搜索,收藏常用文件夹,快速切换到当前路径,快捷右键菜单等高效操作。使用方式上类似于 macOS 中的 Spotlight,双击 Ctrl 调出搜索框。

它可以方便地完成本地搜索、复制路径、网页搜索、应用搜索、快捷使用命令行、快速调用软件等功能。比如我想在某个目录中以管理员身份打开 cmd。原先可能需要鼠标进行多次操作才能打开,然后 cd 到当前目录。有了 Listary 后,只需打开这个目录,双击 Ctrl,输入 cmda,就可以快速进入工作状态。

Listary 中 支持高度定制化的关键词设置,比如添加快速 Google 的功能,只要了解它的搜索规则,就可以随意添加想要的搜索引擎,将来只需输入 gg + 关键词就能打开浏览器搜索。

04-Listary搜索

这软件中有个值得一提的小功能:快速切换到当前路径,这是替我节省时间最多的一项功能。在保存文件时默认会跳转到上次保存的位置,只要有 Listary 在后台运行,只要在旁边正在运行的窗口中点击一下,就会快速切换到当钱的路径。这个功能可以极大地提升我们保存文件、选择文件的效率。

Windows 上的效率软件有很多,Listary 实际上是一个国产软件,它对于中文的支持非常好,是最值得推荐的软件之一。除了 Listary,Wox 也是一个不错的选择,两者之间大概是 Alfred 和 LaunchBar 的差别。

03-Listary快速保存

自动化的文件管理方式:DropIt

05-DropIt

Windows 在文件管理方面经常会碰到需要批量处理的情况,如果用计划任务的方式处理会很麻烦。所以就要用到第三方的文件管理工具:DropIt,这款软件简直是专为懒人而生的。

简单地说,DropIt 是一款将文件自动分类的软件,非常适合不愿意手动整理文件的用户使用。

它可以 定时监视某个文件夹中的内容,并将符合筛选条件的文件 自动归类 到另一个位置。比如自动将「下载」目录中的文件归类为「压缩包」「视频」「文档」等。全程不需要手动操作。是一个非常理想的文件管理工具。

除了自动归类,你还可以通过 DropIt 快速完成 对文件的流程化操作——将修改日期为今天的文件筛选出来 → 将这些文件打包 → 发送到移动硬盘。原本一连串的操作在 DropIt 里只需要一步。

DropIt 明白用户的懒惰,所以为他们打造了自动分类、监视文件夹、各种人性化的功能。同时又把规则的制定权留给了用户自己,让用户方便地建立起自己的文件管理方法。

尽管它的界面不那么美观,UI 风格不那么统一,但它的功能直切痛点,没有多余的功能,让每一位用户都能够以自己的想法整理自己的电脑,这就足够了。

高度定制的自动化

Windows 的 Power 级功能其实并不少,为了实现高度可定制的的自动化,一些以脚本语言为主的自动化软件因此诞生。

Windows 批处理

06-批处理

Windows 中自带的批处理文件(Batch File)是一种简化的脚本语言,本质上就是 DOS 命令的集合。适合执行重复性的任务。像是清理系统垃圾、刷新系统缓存等操作都可以用批处理实现。

如果有编程的基础,学会一些 简单的批处理语句 就可以完成不少操作了。这些操作可以方便地调用系统自带的软件,也可以实现对文件、网络、进程的管理。

它的缺点同样明显,由于运行环境复杂,越复杂的操作就越容易出错,难以保证所有代码都按照顺序执行。虽然它支持循环、嵌套甚至是动态变量,依然不推荐用它完成过于复杂的操作。学习使用 Powershell、Python 等语言显然更为合适。

Windows Commands 官方文档

自动化操作:AutoIt GUI

07-AutoIt

AutoIt 是一个使用脚本语言的自动化软件,采用的语言类似于 Basic。它可以模拟键盘按键、鼠标移动、对窗口的控制来实现自动化操作,而在其他语言中很难做到这些操作,这便成为了它最大的亮点。

AutoIt 中还可以将脚本编译成 .exe 可执行文件,由于 .exe 文件更容易被其他软件调用,可以配合 Windows 计划任务使用。这也使它的功能覆盖面更为广泛。在 AutoIt 的论坛中也有不少人分享利用 AutoIt 制作的小工具,感兴趣的可以去看看。

自由定制快捷键:AutoHotkey

08-AutoHotkey

AutoHotkey 是 Windows 上一款非常强大的脚本工具,可以通过自定义的一个快捷键触发一系列的动作,可以通过命令调用系统接口、其他程序或是编写可视化界面。

在学习初期,也可以配合 Pulover’s Macro Creator 这样的键鼠录制工具来达到想要的效果。

其实它的功能上与 AutoIt 比较接近,但是两者采用的语法规范并不相同。比如在 AutoHotkey 中的每个功能都以「命令」的形式出现,而 AutoIt 是以「函数」出现的,并不通用。

至于两个工具如何选择,我个人的意见是:如果你学习过 Basic,可以试试 AutoIt,反之则推荐 AutoHotkey。

AutoIt 和 AutoHotkey 都需要用独立的脚本语言编写,学习成本比较高。这里只做简单介绍并附上官网链接,感兴趣的朋友可以自行学习。

总结

与 Windows 有关的高程度自动化相关软件着实不少,比如文中介绍的 AutoIt、AutoHotkey ,但奇怪的是,与此相关的社区、论坛却在逐渐没落,一篇帖子发出去可能几天后才有人回复。我想,很大程度上与这类工具的门槛高、学习成本高和缺少 GUI 界面有关。有了 Workflow 这类的应用出现之后,大多数人显然更愿意通过拖拽控件和少量配置来实现自己的需求。

好在 Microsoft Flow 针对这个问题提出了解决方案,让我们将本地的工作和网络服务进行结合,在同类服务中显得很有新意。只是目前支持的服务数量仍然偏少,如果将来微软有心做大,对 Windows 用户而言实在是一件幸事。

除了这两个极端,Listary 和 DropIt 这类效率工具则是站在普通用户的角度,尽可能简单地解决日常工作中遇到的问题。

其实这些不同思路的自动化软件都是为了解决可能遇到的问题,减少重复劳动是提高效率的一种重要方式。无论是上手即用的效率软件还是需要学习才能掌握的脚本语言,凡是能为工作提供帮助的都是好工具。

本文由我撰写,首发于 少数派