我的新玩具-AppleScript(四)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的新玩具-AppleScript(四)相关的知识,希望对你有一定的参考价值。

参考技术A

我本来以为之前几篇文章已经把AppleScript的基础讲的差不多了,但是自己研究过文档后,发现还是有很多需要补充的,所以又加了一篇。

就是一些特殊的关键字,类似于其他语言中的self,return等,有固定的含义;千万不要用它来自定义变量。
result:记录最近一个命令执行的结果,如果命令没有结果,那么将会得到错误
it:指代最近的一个tell对象
me:这指代段脚本。用法举例path to me返回本脚本所在绝对路径
tab:用于string,一个制表位
return:用于string,一个换行

在AppleScript的字符串比较方式中,你可以设定比较的方式:上面considering和ignoring含义都是清晰的,一个用于加上xx特征,一个用户忽略某个特征;一个特征就是一个attribute。
atrribute应该为列表中的任意一个:
case 大小写
diacriticals 字母变调符号(如e和é)
hyphens 连字符(-)
numeric strings 数字化字符串(默认是忽略的),用于比较版本号时启用它。
punctuation 标点符号(,.?!等等,包括中文标点)
white space 空格

AppleScript是有选择对话框的,想想也是应有之义;下面是一个最简单的选择框:
display alert "这是一个警告" message "你上学迟到了" as warning choose from list "这是第一个妞", "dsfggf" with title "选择框" with prompt "请选择选项"
选择框有以下参数:
 直接参数 紧跟list类型参数,包含所有备选项
 title 紧跟text,指定对话框的标题
 prompt 紧跟text,指定提示信息
 default items 紧跟list,指定默认选择的项目
 empty selection allowed 后紧跟true表示允许不选 multiple selections allowed 后紧跟true表示允许多选

注:该方法不创建文件,只是返回一个路径
choose file name with prompt "指定提示信息"

choose folder with prompt "指定提示信息" default location file "Macintosh HD:Users" with invisibles, multiple selections allowed and showing package contents

注:其中prompt和default location参数同Choose File Name;另外invisibles指定显示隐藏 文件,multiple selections allowed可以多选,showing package contents显示包内容,省略时 则不显示隐藏文件/不可多选/不显示包内容

注:除了type其它参数相同.
choose file of type "txt"

Alias指向文件的唯一ID,一般都用它操作.
set myAlias2 to alias "Macintosh HD:Users:Nathan:Desktop:exam.txt"

path to 用于返回相对路径
path to documents folder --返回当前用户的“文档”文件夹绝对路径alias

path to library folder from system domain --返回系统的“资源库”绝对路径alias

文件读取用read,允许直接读取;但是写入文件之前必须先打开文件,打开文件是open for access FileName,写入文件用write...to语句,最后记得关闭文件close access filePoint。
set myFile to alias "Macintosh HD:Users:Nathan:Desktop:example.txt" read myFile
set aFile to alias "Macintosh HD:Users:Nathan:Desktop:example.txt" set fp to open for access aFile with write permission write "abc" to fp close access fp

最后写了一个文件的小例子:
on createMyTxt() --在桌面上创建一个文件,内部包含一个txt文件,并向txt内插入文件 make new folder at desktop with properties name:"star" make new file at folder "star" of desktop with properties name:"star.txt" end createMyTxt --向txt文件内写入内容 on writeTextToFile() set txtFile to alias "Macintosh HD:Users:star:Desktop:star:star.txt" set fp to open for access txtFile with write permission write "你好,这是一个txt文件" to fp close access fp end writeTextToFile createMyTxt() writeTextToFile()

希望能够加深大家对AppleScript的认识!

Applescript 如果包含一个单词

【中文标题】Applescript 如果包含一个单词【英文标题】:Applescript if contains a word 【发布时间】:2016-12-14 11:34:13 【问题描述】:

这是我的脚本:

set APPS to  "facebook", "Minecraft"
if appName contains APPS then
    display notification "app founds" with title "Apps"

我也试试

if appName is in APPS then

但在本例中,如果找到的应用程序是“我的世界:故事模式”,那么脚本将失败(不会检测到任何内容)我怎样才能让脚本检测到呢?

亲切的问候

【问题讨论】:

【参考方案1】:

如果要检查集合中的项目是否包含子字符串,则需要重复循环

set APPS to "facebook", "Minecraft"
repeat with anApp in APPS
    if appName is in anApp then -- or anApp is in appName depending on which is the substring
        display notification "app founds" with title anApp
        exit repeat
    end if
end repeat

【讨论】:

谢谢,问题是如果找到的变量是“我的世界:故事模式”,那将不起作用,或者我应该写下所有可以修复它的变量

以上是关于我的新玩具-AppleScript(四)的主要内容,如果未能解决你的问题,请参考以下文章

从 Cocoa 应用程序运行 AppleScript

在 Apple Music 中打开/搜索 Spotify 曲目(使用 Applescript)

动态命名apple脚本变量

使用 JavaScript 语法在 AppleScript 中打开 XML 文件

如何让 Apple Script 仅在特定的显示器/显示器中单击?

沙箱化嵌入 AppleScript 的 Objective-C 应用程序