简介
AppleScript 是一种由苹果公司开发的脚本言语,专门用于其 macOS 操作系统。这种言语运用户能够自动化操控 Mac 计算机和应用程序的使命。AppleScript 的共同之处在于其语法接近自然言语,这使得即便是非程序员也能了解和编写脚本。它能够与多种应用程序交互,如 Finder、Safari 和 Microsoft Office,完结自动化操作,然后进步功率和作业流程的自动化。AppleScript 广泛应用于各种使命,从简略的文件管理到杂乱的数据处理流程。
优势
- 自动化使命:能够自动化履行各种使命,如文件管理、系统配置、数据处理等。
- 与 macOS 应用程序集成:与 macOS 上的大多数原生应用程序和一些第三方应用程序有杰出的集成,支撑自动化这些应用的操作。
- 易于学习:语法接近自然言语,易于了解和学习,即便是非程序员也能够轻松编写脚本。
- 跨应用作业流程:能够操控和协调多个应用程序,完结杂乱的跨应用作业流程。
- 强壮的脚本能力:支撑杂乱的逻辑和数据处理功用,适用于多种自动化需求。
总之,AppleScript 是一种强壮的自动化东西,特别合适需求在 Mac 环境下进步作业功率和自动化日常使命的用户。
Q: 为什么不选择市面上现已有的一些功率东西?
A:
-
饱尝好评的功率软件我也会引荐我一直在用的,没有说吃饱了撑着,非要自己写。
-
但很多软件的功用关于咱们来说,并不能完好满足咱们的需求:
比方别人的东西有批量移动,但我想批量移动后,给他们依照规矩对应的批量重命名。可能A软件有批量移动的功用,B软件有批量重命名的功用,我要完结这个功用,我需求下载两个,然后先界说好A的规矩,完结移动后,再界说好B的规矩,最终完结我想要的。
-
日常运用的一些功率脚本,运用脚本编辑器并不难,代码量也没有多少。基本看完基础教程,咱们就能写出满足咱们日常所需。
-
网络挑选符合咱们需求的软件比较难,花时刻下载下来,还要一一去试,去体会,有一些还需求付费。还不如咱们写几行代码来的快!
Q:为什么不运用Python,它也能够帮咱们自动化
A:
1. AppleScript学习门槛很低,简略的一些使命,你并不需求编程基础。你只需求依据我的入门文档,就能够轻松完结它,学习的周期短。
2. Python在咱们杂乱的大型使命里边能够结合着运用,其他言语也是一样。但是在Mac环境里边,AppleScript的履行功率远远胜过其他言语脚本。就简略的点击按钮,或者辨认文字来说,Python可能要用到识图等等,而AppleScript是直接检查这个按钮的信息,点击Python可能要用到坐标,AppleScript则是一行命令click button x of XXX
,这样既高效,而且不容易犯错。不会影响程序履行的流畅性。
实践应用
-
批量仿制重命名删去某个文件夹的文件
- 依据文件后缀
- 依据文件添加日期
- 依据文件名
-
A老师想从网络文件夹1和网络文件夹2查找B学生提交的作业,并仿制到本地桌面检查。
- 查找一群学生的作业,并记载哪些没查到,哪些查到了,生成Execl文档,放到桌面上。
-
清空回收站。
- 设置定时整理
- 设置回收站巨细超过2个G整理
-
自动登录AppleID,然后翻开相片APP,将本地的相片,导入到相片里,完结苹果电脑手机相片的同享。
- 自界说创立相册,依据导入时刻?或者自界说名称?或者相片的名称前缀?
-
自动发消息(切勿滥发)
-
邮件
-
iMessage
-
-
科研数据处理
-
导入一批数据文件到专门的处理软件,然后点击某些按钮,设置处理的参数
-
一系列的操作
-
导出
-
项目演示
-
压缩图片
property level : "best" on run compress() end run on compress() do shell script "sips -s format jpeg -s formatOptions " & level & " /Users/sunsjay/Desktop/a.png --out /Users/sunsjay/Desktop/output.png " end compress
-
A老师想从网络文件夹1和网络文件夹2查找B学生提交的作业,并仿制到本地桌面检查。
set jobNumber to "a" tell application "Finder" set fileOne to "COMMON:sunsjay:a:" & jobNumber & ".txt" set fileTwo to "COMMON:sunsjay:b:" & jobNumber & ".txt" if (exists file fileOne) then duplicate file fileOne to desktop display dialog "现已从a文件夹找到,并仿制到桌面" else if (exists file fileTwo) then duplicate file fileTwo to desktop display dialog "现已从b文件夹找到,并仿制到桌面" else display dialog "文件没有找到" end if end tell
-
检查我电脑里现已装置的软件是什么,以及对应的版别。将它们生成txt文档并放在桌面
use AppleScript version "2.5" use framework "Foundation" use scripting additions set plistString to do shell script "system_profiler -xml SPApplicationsDataType" set dataString to current application's NSString's stringWithString:plistString set plistData to dataString's dataUsingEncoding:4 set propertyList to current application's NSPropertyListSerialization's propertyListWithData:plistData options:0 format:(missing value) |error|:(missing value) set allItems to (propertyList's objectAtIndex:0)'s objectForKey:"_items" set nameAndVersion to allItems's dictionaryWithValuesForKeys:{"_name", "version", "path"} set appList to (nameAndVersion's objectForKey:"_name") as list set appVersionList to (nameAndVersion's objectForKey:"version") as list set appPathList to (nameAndVersion's objectForKey:"path") as list set dateStamp to (do shell script "date " %Y-%m-%d-%H-%M"") set desktopPath to (path to desktop as text) -- List set myList to {"All Installed Apps", "Avoid Apple Apps"} set chosenItem to choose from list myList with prompt "Options" if chosenItem is false then display dialog "请选择." else if chosenItem's first item = "All Installed Apps" then set theFilePath to desktopPath & "All Installed Apps " & dateStamp & ".txt" set theFile to open for access theFilePath with write permission repeat with i from 1 to count of appList set appName to item i of appList set appVersion to item i of appVersionList log appName & " " & appVersion write (appName & " " & appVersion & return) to theFile starting at eof end repeat close access theFile display dialog "All installed apps saved to Desktop" else if chosenItem's first item = "Avoid Apple Apps" then set theFilePath to desktopPath & "All Installed Apps without Apple Apps " & dateStamp & ".txt" set theFile to (open for access theFilePath with write permission) repeat with i from 1 to count of appList set appName to item i of appList set appVersion to item i of appVersionList set appPath to item i of appPathList set bundleID to do shell script "mdls -name kMDItemCFBundleIdentifier -r "" & appPath & """ if bundleID does not start with "com.apple." then -- Exclude com.apple. bundle IDs log appName & " " & appVersion & " " & bundleID write (appName & " " & appVersion & return) to theFile starting at eof end if end repeat close access theFile display dialog "Avoided System Apps and saved to Desktop" end if end if
教程规划
-
入门基础篇
- AppleScript的语法结构、关键字、变量和数据类型等基本语法元素。
- 了解脚本目标的概念,以及怎么运用应用程序字典来查找和了解应用程序中可脚本化的目标、属性和命令。
- 怎么编写明晰、可读性强的脚本代码,以及怎么运用调试东西来排查和修复脚本中的过错。
实战:
- 批量文件管理
- 定期备份
- 仿制
- 移动
- 重命名
- 删去
- 邮件自动发送
-
进阶篇
- 与其他应用程序集成
- 与服务器后台交互,下载文件,获取上传信息,解析并履行
- 自动化数据处理
- 自界说作业流程
- 图像处理
实战:
-
PhotoShop自动化预处理
-
CSV文件在Numbers文件中处理,并计算
-
相片同享(自动登录账号,文件移动,按钮点击,输入文本)
-
滑词翻译、截图翻译
-
…
Q:没有Mac电脑也能够学习吗?
A:
是能够的!但是仍是看你需求,你想学了它来干嘛,假如Windows系统现已有现成能够帮你完结的程序,也大可不必去学习!假如你的确需求它的自动化来帮你处理一些东西,那你能够装一个MacOS的虚拟机,也能够来到达帮你处理的目的。